Software Architecture & Platform SIG: Designing a Beautiful REST+JSON API



  • Title: Designing a Beautiful REST+JSON API

    Designing a really clean and intuitive REST + JSON API is no small feat. You have to worry about resources, collections of resources, pagination, query parameters, references to other resources, which HTTP Methods to use, HTTP Caching, security, and more! And you have to make sure it lasts and doesn't break clients as you add features over time. Further, while there are many references on creating REST APIs with XML, there are much fewer references for REST + JSON.
    In this presentation, Les Hazlewood - Stormpath CTO and Apache Shiro PMC Chair - will share all of the golden nuggets learned while designing, implementing and supporting JSON-based REST APIs, using examples from a clean real-world REST+JSON API.

    He will cover:
    -JSON-based data formats in a RESTful API
    -References to other JSON-based resources (aka 'linking').

    -Resource collections and pagination
    -How to map (and how not to map) HTTP methods to Resource CRUD
    -Resource partial updates
    Supporting HTTP Method Overloading for clients that don't support HTTP PUT and DELETE
    -API versioning strategies
    -Meaningful Error responses
    -Many-to-many resource relationships
    -HTTP Caching and Optimistic concurrency control.
    -Authentication and Security

    Les Hazlewood is the Co-Founder and CTO of Stormpath, Inc. and the Apache Shiro PMC Chair.
    Prior to forming Stormpath, he held senior architectural positions at Bloomberg and Delta Airlines and he was the former CTO of a software engineering firm supporting educational and government agencies.
    Les has been actively involved in Open Source development for more than 10 years, committing or contributing to projects like the Spring Framework, JBoss, and of course Apache Shiro.

    Les has a BS in Computer Science from Georgia Tech, currently lives in San Mateo, CA and practices Kendo and studies Japanese when he's not banging out code.


    6:30 - 7:00 p.m. Registration/Networking/Refreshments/Pizza

    7:00 - 9:00 p.m. Presentations