I've been developing an online diving logbook site over the past while as a hobby. I've got it working quite nicely with some nice features and lots of ideas for the future.
I've been receiving a few requests from developers of desktop logbook software who want users of their software to be able to sync their logbooks with my online site, and I would like to be able to offer them this as I am very keen on expanding my site. I want to build some sort of API so that synchronising is possible and that there is no direct link between my site and these programs.
How should I go about this? And then whats the best way to implement this? I've been reading up a bit about oauth, which seems to be the standard, but how does this work when dealing with an online site and a desktop application?
And any other advice on going about this?
Thanks in advance!
There is really no difference between dealing with another website and dealing with a desktop application when it comes to Web APIs.
Basically, what you'll want to do is design something where they are able to make calls to a specific page and send specific information. Then you take the information, process it and do whatever, and then send some sort of response.
You'll want to figure out what functions you'll need to accompany so they can send and receive the appropriate information (getLogActivity, saveLogActivity, etc.).
If you haven't yet, you may want to grab a book or two on RestFUL Web Services. This book from O'Reilly is a bit dry (as are all of their books), but pretty useful on the topic (they also discuss other types of Web Services, like SOAP). RESTful Web Services - O'Reilly Media
Hope that helps.
Thanks for the input, will check out those books and do some reading up.