Building Rich and Dynamic Decoupled Applications with Hypermedia
Don't you love Amazon's "Buy now with 1-click" button? Have you ever wondered how it's kept secure or how it adjusts for product availability? Ever thought about how a feature like that works across Amazon's website, iOS and Android apps, and now Alexa and other smart home devices too?
Come and learn how you too can build for these great user experiences using hypermedia and JSON API.
In this session, we'll see how hypermedia as the engine of application state (HATEOAS) is often misunderstood and underutilized even though it's a RESTful tenet.
We'll see how using hypermedia to tailor your HTTP API to your specific requirements will help you iterate more quickly, evolve your application without breaking backwards compatibility, and provide richer, more dynamic experiences to your users.
With hypermedia, these seemingly simple but truly frustrating questions can be made easy in a decoupled environment:
-
How can a JS client know which operations it can perform on a resource (like add, update or remove)?
-
How can it know which of those operations the user is permitted to perform?
-
How can I provide custom operations like "add to cart", "like", "unlike", etc.
-
How can I change those operations over time when my business requirements change?
-
How can I minimize disruption if I have multiple API consumers and I need to change any of the things above?
-
How can I provide button labels that are customizable and easy to update?
-
How can I access metadata about linked resources, like the list of available languages or the price of a product variation?
So, let's take a dive into JSON API and the web to see how you can use hypermedia to speed up your decoupled applications, to write simpler API clients and to solve frustratingly complex problems in an elegant way.
As an attendee you should come with a passing understanding of REST and HTTP. Some knowledge of either PHP or JS will be helpful. Whether you're a frontend or backend developer you should be able to leave with some useful takeaways for your current or upcoming decoupled projects.