~/talk

API Design: It's Not Rocket Surgery

Talkat PHP UK Conference 2013 · 2013-02-21..02-23· [api-design, php]
links:none on file
slides:none on file

Argues RESTful URLs alone are not enough and gives concrete design choices: use versioned URLs for routing and analytics, return ETag and support If-Match/If-Modified-Since for caching and conflict detection, prefer JSON with an out‑of‑band meta block (include status, deprecation, rate‑limit info and JSONP handling). Recommends OAuth2 over DIY auth, mentions HMAC only for high‑security cases, cites drop‑in rate‑limit gateways and monitoring with statsd + Graphite, and automating docs as runnable tests.

AI-written summary · about

  1. 0:00Start
  2. 2:44They don't care about internal implementation details
  3. 2:58Use common sense
  4. 3:31Use query arguments to filter output or for (some) alternate representations
  5. 4:22Verbs
  6. 10:44Beware: some proxies may not pass custom headers
  7. 11:30Authentication & Authorization
  8. 15:07Formats
  9. 15:18Sane default: JSON, plus envelope with metadata
  10. 16:22Metadata envelope helps with JSONP and limited clients that discard errors
  11. 17:10What about XML?
  12. 18:04HATEOAS adds links to related endpoints in the response
  13. 20:36Data integrity
  14. 20:49Allow your consumers to cache data whenever possible
  15. 22:02405 Method Not Allowed 406 Not Acceptable 412 Precondition Failed 428 Precondition Required* 429 Too Many Requests
  16. 23:57Documentation is important
  17. 24:54Consider linking your examples to your automated tests
  18. 26:48Everybody loves graphs (and they're important for understanding API usage and performance)
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.