Hydra is an effort to simplify the development of interoperable, hypermedia-driven Web APIs. The two fundamental building blocks of Hydra are JSON‑LD[1] and the Hydra Core Vocabulary[2].
JSON‑LD is the serialization format used in the communication between the server and its clients. The Hydra Core Vocabulary represents the shared vocabulary between them. By specifying a number of concepts which are commonly used in Web APIs it can be used as the foundation to build Web services that share REST's benefits in terms of loose coupling, maintainability, evolvability, and scalability. Furthermore it enables the creation of generic API clients instead of requiring specialized clients for every single API.
Specifications
Playground
There exists a demo Web API featuring a simple event management API which allows you to try Hydra directly in your web browser:
There also exists a demo featuring an issue tracker[4]. Of course, the complete source code of the Hydra Event API[5] as well as the Hydra Issue Tracker Demo application[6] is available. You can use them as skeletons for your own APIs.
Collaborating
Join the Hydra W3C Community Group[7] (you need a W3C account[8] to do so). If you just want to report a bug, either raise an issue on our issue tracker[9], submit a pull request, or send a mail to Hydra's public mailing list[10].
Source Code
The Hydra project currently consists of the following parts:
- HydraBundle[11]: a bundle for Symfony2[12] to create Web APIs based on Hydra
- HydraConsole[13]: a generic API console for Hydra-powered Web APIs
- HydraClient[14]: a PHP client library to access Hydra-powered Web APIs
- JsonLD[15]: a JSON-LD processor implemented in PHP
Publications/Presentations
- M. Lanthaler, “Full-on Hypermedia APIs with Hydra[16],” presented at the API Strategy & Practice Conference.
- C. Pautasso, E. Wilde, and R. Alarcon (editors), “REST: Advanced Research Topics and Practical Applications[17],” Springer New York, 2014.
- L. Richardson, M. Amundsen, and S. Ruby, “RESTful Web APIs[18],” O’Reilly Media, 2013.
- M. Lanthaler, “Building Next-Generation Web APIs with JSON-LD and Hydra[19],” presented at the Symfony Live Portland 2013 [slides[20]] [video[21]].
- M. Lanthaler and C. Gütl, “Hydra: A Vocabulary for Hypermedia-Driven Web APIs[22],” in Proceedings of the 6th Workshop on Linked Data on the Web (LDOW2013) at the 22nd International World Wide Web Conference (WWW2013), 2013 [slides[23]].
- M. Lanthaler, “Creating 3rd Generation Web APIs with Hydra[24],” in Proceedings of the 22nd International World Wide Web Conference (WWW2013), 2013, pp. 35–37 [slides[25]].
- M. Lanthaler and C. Gütl, “Model Your Application Domain, Not Your JSON Structures[26],” in Proceedings of the 4th International Workshop on RESTful Design (WS-REST 2013) at the 22nd International World Wide Web Conference (WWW2013), 2013, pp. 1415–1420 [slides[27]].
References
- ^ JSON‑LD (json-ld.org)
- ^ Hydra Core Vocabulary (www.markus-lanthaler.com)
- ^ Launch Hydra Console (www.markus-lanthaler.com)
- ^ demo featuring an issue tracker (www.markus-lanthaler.com)
- ^ Hydra Event API (bit.ly)
- ^ Hydra Issue Tracker Demo application (m.lanthi.com)
- ^ Hydra W3C Community Group (m.lanthi.com)
- ^ W3C account (www.w3.org)
- ^ issue tracker (github.com)
- ^ Hydra's public mailing list (lists.w3.org)
- ^ HydraBundle (m.lanthi.com)
- ^ Symfony2 (www.symfony.com)
- ^ HydraConsole (m.lanthi.com)
- ^ HydraClient (m.lanthi.com)
- ^ JsonLD (m.lanthi.com)
- ^ Full-on Hypermedia APIs with Hydra (m.lanthi.com)
- ^ REST: Advanced Research Topics and Practical Applications (m.lanthi.com)
- ^ RESTful Web APIs (amzn.to)
- ^ Building Next-Generation Web APIs with JSON-LD and Hydra (m.lanthi.com)
- ^ slides (m.lanthi.com)
- ^ video (bit.ly)
- ^ Hydra: A Vocabulary for Hypermedia-Driven Web APIs (m.lanthi.com)
- ^ slides (m.lanthi.com)
- ^ Creating 3rd Generation Web APIs with Hydra (m.lanthi.com)
- ^ slides (m.lanthi.com)
- ^ Model Your Application Domain, Not Your JSON Structures (m.lanthi.com)
- ^ slides (m.lanthi.com)