Full-on Hypermedia APIs with Hydra

5,553
-1

Published on

Presented at the API Strategy & Practice Conference in Amsterdam, Netherlands

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,553
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Full-on Hypermedia APIs with Hydra

  1. 1. Full-on Hypermedia APIs Markus Lanthaler
  2. 2. { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  3. 3. { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  4. 4. Link: <http://example.com/events/as14/attendees/> { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  5. 5. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  6. 6. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  7. 7. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" { 69 64: 61 73 31 34, 6E 61 6D 65: 41 50 49 20 53 74 72 61 74 65 67 79 … 73 74 61 72 74 44 61 74 65: 32 30 31 34 2D 30 33 … 65 6E 64 44 61 74 65: 32 30 31 33 2D 30 33 2D 32 … } http://example.com/events/as14
  8. 8. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" http://example.com/events/as14 /events/as14 /events/as14/attendees
  9. 9. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" { 69 64: 61 73 31 34, 6E 61 6D 65: 41 50 49 20 53 74 72 61 74 65 67 79 … 73 74 61 72 74 44 61 74 65: 32 30 31 34 2D 30 33 … 65 6E 64 44 61 74 65: 32 30 31 33 2D 30 33 2D 32 … } http://example.com/events/as14
  10. 10. Link: <http://example.com/events/as14/attendees/>; rel="http://example.com/rels/attendees" { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28" } http://example.com/events/as14
  11. 11. { "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28", "attendees": "/events/as14/attendees/" } http://example.com/events/as14
  12. 12. { "@context": { "@vocab": "http://schema.org/" }, "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28", "attendees": "/events/as14/attendees/" } http://example.com/events/as14
  13. 13. { "@context": { "@vocab": "http://schema.org/" }, "id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28", "attendees": "/events/as14/attendees/" } http://example.com/events/as14
  14. 14. { "@context": { "@vocab": "http://schema.org/" }, "@id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28", "attendees": "/events/as14/attendees/" } http://example.com/events/as14
  15. 15. { "@context": { "@vocab": "http://schema.org/" }, "@id": "as14", "name": "API Strategy & Practice Conference", "startDate": "2014-03-26", "endDate": "2013-03-28", "attendees": { "@id": "/events/as14/attendees/" } } http://example.com/events/as14
  16. 16. { "@context": { "@vocab": "http://schema.org/" }, "@id": "/events/as14/attendees/" }
  17. 17. { "@context": [ { "@vocab": "http://schema.org/" }, "http://www.w3.org/ns/hydra/core" ], "@id": "/events/as14/attendees/" }
  18. 18. { "@context": [ { "@vocab": "http://schema.org/" }, "http://www.w3.org/ns/hydra/core" ], "@id": "/events/as14/attendees/", "operation": { "@type": "AddAction", "method": "POST", "expects": { "@id": "Person", "supportedProperty": { "property": "name", "required": true } } } }
  19. 19. { "@context": [ { "@vocab": "http://schema.org/" }, "http://www.w3.org/ns/hydra/core" ], "@id": "/events/as14/attendees/", "operation": { "@type": "AddAction", "method": "POST", "expects": { "@id": "Person", "supportedProperty": { "property": "name", "required": true } } } }
  20. 20. { "@context": [ { "@vocab": "http://schema.org/" }, "http://www.w3.org/ns/hydra/core" ], "@id": "http://schema.org/attendees", "supportedOperation": { "@type": "AddAction", "method": "POST", "expects": { "@id": "Person", "supportedProperty": { "property": "name", "required": true } } } }
  21. 21. Hydra Console
  22. 22. © 2014, Markus Lanthaler. Some Rights Reserved. http://creativecommons.org/licenses/by-nc-sa/4.0/ Thank You
  23. 23. © 2014, Markus Lanthaler. Some Rights Reserved. http://creativecommons.org/licenses/by-nc-sa/4.0/ SpecialThanks to
  24. 24. Questions? Markus Lanthaler http://www.markus-lanthaler.com @MarkusLanthaler mail@markus-lanthaler.com
  25. 25. Image Credits (1) http://www.flickr.com/photos/piper/2890945512/ (13) http://schema.org/attendees (14) http://schema.org/Event (18) http://www.vonwong.com/

×