Building API's for a web 2.0 / web 3.0 aspiring service is very different than providing a tight integrated RPC service for some corporate client. It requires completely different ways of thinking and embracing new standards. I've composed a quick slideshow of all the architectural choices and considerations I've come across.
3. Data Service Goals
stimulate an explosion of new data/content
repurpose our data off-site and increase
activity
potentially generate revenue from services
18. Platform Setup
URL of great importance
Profit / Non-profit considerations
Platform As A Service?
19. the URI
mental models / syntax
media to use
data structure
protocol domain version path format
http://ws.audioscrobbler.com/1.0/user/dx00/recenttracks.xml
20. URIs for API Calls
http://ws.audioscrobbler.com/1.0/user/dx00/recenttracks.xml
http://api.flickr.com/services/rest/?method=flickr.photos.search
http://twitter.com/statuses/friends_timeline/dominiek.json
http://dominiek.tumblr.com/api/write
24. Loose / Tight Integration
How much do third parties need to know
about your system?
How easy is it to use your data services?
25. Integration
standardized customized
Loose
rss html microformats
restful
json rest Tight
xml
rdf xmlrpc rpc
xml
soap serialization
corba
ease of html
integration
26. RESTful
GET /get_user.xml?username=dominiek
HTTP standard? Yes
Status codes? Yes
Variety of response formats? Yes
Using correct method calls? Almost
Identifying URI for resource No
27. REST
DELETE /users/dominiek.xml
HTTP standard? Yes
Status codes? Yes
Variety of response formats? Yes
Using correct method calls? Yes
Identifying URI for resource Yes