Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermedia APIs with Magpie
Hypermedia APIs – Why, what, how?
-
Upload
vesa-vaenskae -
Category
Technology
-
view
964 -
download
4
description
Transcript of Hypermedia APIs – Why, what, how?
![Page 1: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/1.jpg)
Hypermedia APIs Why, what, how?
Vesa Vänskä, Kisko Labs Helsinki Ruby Brigade, Rails Girls
![Page 2: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/2.jpg)
Warning!
![Page 3: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/3.jpg)
What if all changes of the backend wouldn't require an update to
the frontend?
![Page 4: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/4.jpg)
Current state is like brittle Selenium tests
![Page 5: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/5.jpg)
HyperText is a way to link and access information of various kinds as a web of nodes in which the user
can browse at will.
— Tim Berners-Lee, 1992
![Page 6: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/6.jpg)
URLs in the response aka
HATEOAS
![Page 7: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/7.jpg)
https://developer.paypal.com/docs/api/#hateoas-links
![Page 8: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/8.jpg)
http://37signals.com/svn/posts/3373-getting-hyper-about-hypermedia-apis
![Page 9: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/9.jpg)
REST?
![Page 10: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/10.jpg)
Increased flexibility
![Page 11: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/11.jpg)
Example: Feature needs to be
disabled
![Page 12: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/12.jpg)
Example: Form fields need to be
changed
![Page 13: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/13.jpg)
How would you build a
Hypermedia API?
![Page 14: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/14.jpg)
State machine
![Page 15: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/15.jpg)
Following a link changes the state
![Page 16: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/16.jpg)
http://whyidentity.blogspot.fi/2013/04/hypermedia-links-in-paypal-restful-apis.html
![Page 17: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/17.jpg)
http://www.jayway.com/2012/10/06/why-hypermedia-apis/
![Page 18: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/18.jpg)
• Response generators
• Clients
• Documentation tools
Tooling
![Page 20: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/20.jpg)
Adoption
![Page 21: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/21.jpg)
Books
Designing Hypermedia APIs by Steve Klabnik
![Page 22: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/22.jpg)
Other resources
A Hypermedia API Reading List http://blog.steveklabnik.com/posts/2012-02-27-hypermedia-api-reading-list
![Page 23: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/23.jpg)
Future ambitions
![Page 24: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/24.jpg)
Media-type standardization
JSON Schema, HAL, Collection+JSON etc.
![Page 25: Hypermedia APIs – Why, what, how?](https://reader033.fdocuments.net/reader033/viewer/2022052410/554f9ea6b4c90586258b4832/html5/thumbnails/25.jpg)
Unified documentation