These are some ideas that I got (directly and indirectly) from a Google Tech Talk (At Google's 2010 I/o Developer Conference). :: Features :: - Create libraries to execute functions - E.g. JS library that is hosted on API server which gives developers easy access to methods and is kept up to date. - PHP library that is compressed (zip,tar gz) and an email is sent out with announcements on changes and versions. - If the library is in javascript then it can return an Array of Objects, numerically represented keys (for the elements). - Also, the api could return an object that holds the array of data along with common functions for future calls. Service.videos.search(Object JSON_object, Bool return_object_with_functions); Service.videos.search({ "query": "funny cats", "count": "20" }, true); { "data": [ { "title": "", "author": "", "views": "", "likes": "" }, { "title": "", "author": "", "views": "", "likes": "" } ], "next": function () { return Service.videos.search({ "query": "funny cats", "count": "20", "start_id": "s50h86kq" }, true); } } - Service.users.update( auth_token, { "email": "user@domain.tld", "bio": "I like cats." }); - Service.videos.search({ "query": "funny dog", "count": "10", }); - Partial GET's and PUT's - http://api.domain.tld/users/edit/?email=user@domain.tld&bio=I+like+cats - http://api.domain.tld/users/?username=adam&fields=name,age,url,bio&format=json - Service.videos.search(Object [JSON] options, Bool return_commonly_used_functions, Array [JSON] fields); - Service.videos.search({ "query": "funny kids" }, false, [ "title", "id" ]); - Custom Variables in requests - http://api.domain.tld/image/edit/?image_id=2hg2h3g2&method=rotate°rees=90 - "Templates" for response formats - Just like a regulat HTML template, you use a template for response formats (XML,JSON,Atom) - Versioned API's - http://api.domain.tld/v1/user/edit/ - http://api.domain.tld/dev/user/edit - http://api.domain.tld/experimental/ -- Adam Shannon Web Developer http://ashannon.us