The speed of feature release for web and mobile apps continues to increase, but it can grow costly and time consuming to constantly rebuild and redeploy client applications—especially through app stores, where updates can take more than a week to appear. What if you could add new features to an existing client without repeatedly installing new versions of the application? What would the code look like? What changes are needed to create a client that can adapt to changes in the service API? How much change is reasonably possible when both the client and API are able to evolve over time?
Mike Amundsen offers 12 patterns and practices for building APIs that can safely evolve over time and client applications that can adapt to those changes without relying on explicit versioning systems or repeated redeployment. Whether you are responsible for building web front-ends or APIs to serve those apps, Mike helps you identify key principles to increase the adaptability and evolvability of your web implementations.
The Problem
With the explosion of data available on the Web, there has also been a marked increase in the number of "Web APIs" developers must deal with in order to access the data. These Web APIs almost always require consumers to write custom code in order to access the data. Some even invent their own authentication and authorization schemes that require additional development effort before the data is available for end users. The result is that every new set of data requires a new set of code; in effect, a custom client for each data set.
This is not how the Web was envisioned.
The Solution
Instead of publishing limited implementations that only support reading and writing raw data in simple formats such as XML and JSON, this workshop shows how you can craft rich payloads that include not just data, but also the application controls appropriate for the content; including the ability to search, sort, filter, and update data on the server. This hypermedia approach allows publishers to focus on returning the proper data and application controls to the client in each response and allows client applications to focus on understanding the hypermedia controls provided in the response instead of being required to map custom code to each service provider and data source.
The Workshop
In this workshop, attendees will learn how to implement an alternative to one-off Web APIs using Hypermedia Engines. Topics covered include:
An internationally known author and lecturer, Mike Amundsen travels the world consulting and speaking on a wide range of topics, including distributed network architecture, web application development, and other subjects. In his role of director of architecture for the API Academy, Mike heads up the API architecture and design practice in North America. He is responsible for working with companies to provide insight on how to best capitalize on the myriad opportunities APIs present to both consumers and the enterprises themselves. Mike has authored numerous books and papers on programming over the last 15 years. His most recent book, RESTful Web APIs, is a collaboration with Leonard Richardson published by O’Reilly in 2013. His 2011 book, Building Hypermedia APIs with HTML5 and Node, is an oft-cited reference on building adaptable web applications. His latest book, RESTful Web Clients, was published by O’Reilly Media in early 2017.