Designing Great APIs
As technology consultants focused on BPM, we see a lot of API implementations. As such, this post by Brendan Sterne is near and dear to my heart, as it describes, in particular, what it means for your API to be explorable in a browser address bar.
- Major versioning in the url (api.xx.com/v1/)
- Use SSL/HTTPS with apikey params (or basic auth)
- Nicely formatted JSON output
- Content-Type overriding via resource extension to the url (/users.json)
- Pagination in query params (offset & length)
- Overriding HTTP methods (…&_method=DELETE to delete from browser)
He also links to several other articles that are worth reading, and a couple of API docs that are great examples of good API design (Stripe and GItHub in particular). If you have a product or service that deserves an API, it deserves a good one. A good API will increase adoption and utility – and enhance the reputation of your firm and your developers. A bad API will… well you get the idea.