Give it a REST - Tips for designing and consuming public APIs

By Liam Westley

Talk Abstract:

In the past five years at Huddle we've been updating out public API to be more restful, more tolerant, and to handle the move from a monolithic application to one based on microservices with async operations.

We've also created clients for web, iOS, Android, Windows and OS/X that consume that same API and experienced some of the same pain as our customers when we have taken a wrong turn.

It's not been easy and it's time to share the knowledge of the real-world problems of maintaining a useable API that keeps everyone happy (some of the time).

Rather than describe the principles of REST and HATEOAS we'll examine everyday issues, best practice for both creators and consumers, and maybe highlight some gaffs along the way.

  • Initial design - the chicken and egg of where to start
  • Extensibility and versioning, improving an API without breaking it for existing users
  • Patterns for async operations
  • Rate limiting on the server
  • Handling deprecation gracefully
  • Backend for frontends - how to handle (hide) the world of microservices behind your API, with technology such as GraphQL
  • How to consume APIs to keep your application reliable
  • Extensibility and versioning, coping with change without rolling a new release
  • Understanding caching, rate limiting for the client, and dealing with weird responses

About Liam Westley

Liam Westley is an Application Architect at Huddle where he works with some of the best .Net developers and UX designers to deliver world class collaboration software. He quite likes working just on the edge of The City as there is some fantastic food and coffee to be had within a few minutes walk.

Previous to Huddle Liam worked at Criteria MX, a digital media startup and has worked as a consultant via his own company Tiger Computer Services Ltd, specialising in software for Broadcast Television. His Niagara SMS moderation system was used by QVC UK for eight years to display SMS messages from viewers, live, on screen. Liam is also responsible for the ticketing system for Hat Trick Productions which provides e-tickets to shows such as Have I Got News For You and Room 101.

Liam has worked for chellomedia, GMTV, BSkyB, SmashedAtom and Original Thinking Group. In his time he created the first in house weather system for Sky News using Visual Basic 1.0, acted as architect for two general election systems, project managed the launch of the GMTV web site, was key to delivering the first interactive television chat service in the UK for BSkyB and helped launch the first live shopping channels in the Netherlands.