These are the talks on REST API design that I gave at Codemash 2016.
Over the years, REST has grown in popularity as the preferred way of publishing and consuming web services. The REST architecture lends itself well to building scalable, implementation-agnostic systems that offer services over the web to a diverse set of clients. However, it’s also widely misunderstood – Ever come across someone claiming to know REST refer to it as “a standard protocol”? Designing an API that conforms to the REST principles is a non-trivial task that can get quite challenging especially for complex web services. Often times, we end up having to deal with APIs that are “somewhat RESTful” in nature. This talk discusses the basic tenets behind an effective RESTful Interface. We discuss the design patterns, anti-patterns, recommendations and common pitfalls. I am not a “RESTafarian”. The talk intends to be a practical guide based on my experiences designing many simple and intuitive RESTful interfaces.This is a talk for anyone involved in building client-server systems.
As mobile app developers, more often than not, our apps interface with web services backend through a published RESTful interface. REST provides a convenient, lightweight and stateless way for clients to consume such services. However many services continue to expose APIs that were designed for the pre-smartphone era. This has proven to be a nightmare for mobile app developers who have to now figure out ways to retrofit an API that just does not work for them. This talk provides an overview of the guiding principles behind a RESTful Interface, focusing on aspects that are critical for mobile environments. It explores the specific limitations and requirements of mobile environments and how to define an API that will adapt to such environments. We also explore some tips that mobile app developers can adopt while dealing with archaic APIs. Whether you are a mobile app developer or a server side developer, this talk is for you. The best APIs are the ones that are designed factoring in input from the entire team!