No modern web or enterprise application is an island. Our apps depend on 3rd-party services for data storage, for payment processing, for geographical data, for a myriad different functions. Our apps, in turn, offer APIs for use by mobile apps or 3rd-party clients. And for more and more engineering organizations, breaking an application into cooperating services, microservices, or even “serverless” functions is becoming the go-to architecture for distributing responsibilities.
Modern apps, even “monolithic” ones, aren’t independent black boxes: they are interdependent within an ecosystem of services. In this world, applications need robust strategies for making requests of external services, providing stable and well-documented APIs, and handling the inevitable outages and bugs that crop up with service-oriented architectures.
Over the years, RubyTapas and Graceful.Dev have touched on many topics relevant to working with and providing services. This course collects together a number of these episodes. In these modules we’ll consider topics including:
- Writing sturdy client code for external HTTP-based RESTful (and not-so-restful) APIs.
- Providing stable and well-documented RESTful APIs
- Why you might choose GraphQL over the RESTful style.
- Distributed authorization with Ouath2
- Techniques for consuming data from legacy web apps that don’t offer an API
This course is a Graceful.Dev Garden Path, which means it is a guided pathway through a collection of (mostly) self-contained topics. Its status is: growing, meaning that there is a significant amount of material here already, and more is expected in the future.