21. Affordances’re key to a good design
Imagine!a!car!or!a!building!that!you!couldn't!
possibly!use,!unless!you!had!a!manual.!That!
sounds!silly,!we!don't!build!cars!or!buildings!
like!that.!Yet,!that!is!exactly!how!we!build!
APIs!today.!
28. No, It Is Not Complicated!
You!are!already!very!familiar!with!all!of!it:!World!
Wide!Web!is!a!perfect!Hypermedia!system!and!
HTML!is!one!of!the!most!successful!hypermedia!
types.!
@inadarei
29. When in doubt:
Always!draw!parallels!with!web!and!think!about:!
“—Ok,sohowwouldIdothisifIwasjust
buildingawebsiteandthiswasjustHTML?”
@inadarei
Bingo!
Except!HTML![usually]!deals!with!unstructured!content!and!
is!not!always!appropriate!for!APIs!that!marshal!structured!
data.!Let’s!do!a!ligle!more!of!the!learning!thing.!
30. 7-Step Design Process
1. List Semantic Descriptors
2. Draw a State Diagram
3. Reconcile Names
4. Choose a Media Type
5. Write a Profile
6. Implementation
7. Publication
Source:!Richardson!!Amundsen,!Resiul!Web!APIs!
31. #2 State Diagram
Example: Blog
List of blog posts Create
blog post
Save post
32. #3 Reconcile Names
1. IANA Link Relations
http://www.iana.org/assignments/link-relations/link-relations.
xhtml
2. Microformats Link Relations
http://microformats.org/wiki/existing-rel-values
3. Dublin Core Metadata Element Set, Version 1
http://dublincore.org/documents/dces/
Source:!M.!Amundsen,!UBER!Hypermedia!Format!
33. #4 Choose a Hypermedia Type
1. UBER (http://uberhypermedia.org)
2. Collection+JSON (Col.Doc)
3. HAL
4. Siren
5. JSON:API
6. HTML (yeap! Just ask Jon Moore)
34. 7-Step Design Process
1. List Semantic Descriptors
2. Draw a State Diagram
3. Reconcile Names
4. Choose a Media Type
5. Write a Profile
6. Implementation
7. Publication
Source:!Richardson!!Amundsen,!Resiul!Web!APIs!
35. Who Uses Hypermedia APIs?
1. AWS Streaming API
2. ElasticPath Cortex
3. Comcast
4. Microsoft Lync
5. Paypal
6. Github
7. FoxyCart
8. Huddle
9. Public Media Platform
10. …
You?
36. What now?
1. Follow @mamund
2. Follow @apiacademy
3. Follow @darrel_miller
4. Follow @jharmn
5. Follow @kinlane (always)
6. Follow @inadarei (if you want)
7. Dave Goldberg’s Hypermedia Resources:
http://davejonathangoldberg.github.io/apis/hypermedia/2014/08/08/
hypermedia-resources/
8. Hypermedia Google Group
https://groups.google.com/forum/#!forum/hypermedia-web
9. UBER Google Group
https://groups.google.com/forum/#!forum/uber-hypermedia
Be involved. This is a super-active and exciting space!