I am pleased to announce the second point release of HyperResource, a Ruby client library for hypermedia APIs.
The goal of HyperResource is to make hypermedia the most attractive design for API designers and consumers. HyperResource provides a concise, elegant, simple interface to link-driven APIs which rivals that of most handwritten client libraries. It also allows namespacing and extending of API data types, making it not only great for simple customizations, but ideal as a platform for a rich client library as well.
A lot has changed since the initial 0.1 release in April. A partial list:
- Support for GET, POST, PUT, PATCH, and DELETE
- Cacheability of HyperResource objects using Marshal
HyperResource::Adapterinterface, allowing easy integration with other hypermedia formats
outgoing_body_filtermethods, allowing arbitrary filter/transform to incoming or outgoing data
- Ruby compatibility from 1.8.7/REE to present HEAD
- JRuby compatibility from 1.8-mode to present HEAD
- YARD documentation at hyperresource.com/doc
- Behind the scenes: live tests against a reference Sinatra server, major refactoring, naming improvements
All in all, HyperResource got a lot nicer over the past two months. It’s stable, it’s fast, and it makes hypermedia-driven design a very compelling option for APIs today. I consider this 0.2 release a candidate for a 1.0 early next year.
If you have a hyperlink-driven API to connect to, or you’re developing an API and want your client library to write itself, give HyperResource a look.