Skip to main content

REST: It's not just for servers

Mark Lavin (Caktus Consulting Group)
Average rating: ***..
(3.36, 11 ratings)
Slides:   external link

Many popular services have APIs marketed as RESTful. This term is used with varying degrees of truth. While some services provide and maintain API client wrappers in various programming languages, more often this falls on the larger open source community. Making these useful libraries and keeping them up to date with the latest API changes has its problems and challenges. Some of the problems have to do with the constraints of REST but many come from the rarely implemented and often misunderstood HATEOAS (Hypermedia as the Engine of Application State) principles. This talk will walk through these challenges with examples of the good and bad of what is out there on the client and server side. In the end I hope this talk will inspire API developers on both sides (client and server) to consider how they can work better together. After all what’s a REST server without a client?

Outline

  • Welcome/Introduction
  • Description of REST
  • Brief History
  • Constraints
  • Promises/Gains
  • Challenges for the Client
    • Faux-RESTful servers (With Examples)
    • Weak HTTP support (DELETE/PUT)
    • Managing state
  • Common Mistakes Problems
    • Clients as glorified URL builders
    • Forgetting about caching
  • Best Practices
    • Translate resources and metadata into useful objects
    • Ensure proper use of the cache headers
    • Avoid coding paths (when possible)
  • Appeal for Change:
    • API writers: Write a client with meaningful examples
    • Client writers: Demand better from the API
  • Conclusion/Thanks
  • Mark Lavin

    Caktus Consulting Group

    Mark is a lead Python/Django developer and technical manager at Caktus Consulting Group in Carrboro, NC. He also runs a small homebrewing website written in Django called brewedbyus.com. He came to Python web development after a few years pricing derivatives on Wall Street. Mark maintains a number of open source projects primarily related to Django development and frequently contributes back to projects used by Caktus. When he isn’t programming, Mark enjoys spending time with his wife and daughter, brewing beer, and running.