Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

API Best Practices

1,544 views

Published on

Published in: Technology, Business
  • Be the first to comment

API Best Practices

  1. 1. API Best Practices @urilavi http://bit.ly/scisr
  2. 2. Public API/ Web API HTTP / HTTPS XML/JSON
  3. 3. Rule #0 http://www.flickr.com/photos/holeymoon/2131118247/
  4. 4. Rule #1 - Funnel Try Build Adopt
  5. 5. Simplicity?TDD public APIAt least 3 clients Different languages http://www.flickr.com/photos/giosp/3933753363/
  6. 6. Cross Cutting Concerns Authentication/Authorization Versioning Sync/Async Re-entrance Pagination Caching Throttling
  7. 7. RESTfulness * Use plural names (reads better with GET) * Avoid methods (it isn’t traversal and grows fast)Nouns (Method-less) 2 base URLS per resource /events /events/10
  8. 8. RESTfulnessHTTP Verbs on collections/elements Create POST /events Fetch GET /events/12345 Update PUT /events/12345
  9. 9. Method-based * Use verbs * Make the documentation clear that these are “non resource” operationsConvertTranslate
  10. 10. Rule #2 - Relationships
  11. 11. Rule #2 - Relationships Keep it simple - 3 levels
  12. 12. Rule #2 - Relationships Keep it simple - 3 levels GET /lecturers/events/10
  13. 13. Rule #3 - Complexity? http://www.flickr.com/photos/takomabibelot/4373062612/
  14. 14. Rule #4 - Versioning * Maintain at least one version back GET api/v1/events/10
  15. 15. Rule #4 - Versioning * Maintain at least one version back GET api/v1/events/10
  16. 16. Rule #5 - Errors HTTP status codes {200, 400, 500} Verbose messages link to documentation
  17. 17. Rule #6 - Sync / Async Result available - sync Result available in x time - async PicScout’s API
  18. 18. Rule #7- Re-entrance http://www.flickr.com/photos/leovan/2152274834/ POST /funds/accounts/1000/ {‘value’: 100, ‘token’: ‘xbds213’}
  19. 19. Rule #8 - Formatting JaaD = JSON as a Default
  20. 20. Rule #9 - Automation? http://www.flickr.com/photos/r80o/39304743/ APIs are for humans

×