The REST API Landscape in 2017

James Briggs,
Sr. Software Developer/DBA/Devops

james.briggs@yahoo.com

http://jbriggs.com/blog/

James Briggs

Agenda

  1. Part 1: "The REST API Landscape in 2017" (this talk)
    • Learn terminology and scope of REST APIs
  2. Part 2: "REST API Server Programming with Perl, Swagger and the Mojolicious Framework"
    • Learn details of programming server REST APIs with Perl.

REST API Intro

REST API Standards

REST API Tooling

API-First Development?

Deployment Using Microservices or Library?

REST API Documentation Generation

REST API Navigation Concepts

  1. Hypermedia As The Engine Of Application State (HATEOAS) - Roy Fielding
    • responses are lists of hyperlinks that contain all links and data - requires navigation
    • there is paging of result sets, which complicates client programming
    • not curl-friendly - Roy is an academic (his concern with Internet caching is not invalid with SSL)
  2. Pragmatic (direct navigation based on use cases)
    • programmer gets endpoint url and an item key from UI or exploration and does direct navigation
    • save complex paging and result sets for smaller subset of the API
    • curl-friendly :)

REST Status Reporting

REST API Developer Best Practices

  1. First, ask questions:
    • internal or public API?
    • collect use cases
      • schema-based auto-APIs are kind of bizarre
    • HATEOAS or not?
    • Pick an API standard.
    • Decide on docs formatting
  2. Design Endpoints in spreadsheet
  3. Last, write code. dogfood it, add sample code.

API Versioning

API Rate Limiting

Operations Best Practices

Swagger 2.0 (OpenAPI)

Swagger UI Auth - Note 2 Authorize Buttons

Swagger Disadvantages

Part 1: Questions?