Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fosscomm #8: A hypermedia API design lifecycle

Fosscomm #8: A hypermedia API design lifecycle

Presentation in Fosscomm #8 November 07, 2015 at TEIath.gr

The talk consist of fundamentals in the client-server communication defined by the HTTP protocol. HTTP verbs, status codes, commonly used headers will be quickly summarized while our main purpose would be to focus on the importance of media types by an introduction to the concept of Hypermedia API.

Finally, familiarise with APIBlueprint and the toolchain provided to achieve collaboration with clients, quick iterations between sketch and prototyping during API design.

Resources

Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
{json:api}: A standard for building APIs in JSON
API Design Lifecycle / Honza Javorek
New Acropolis Museum / Bernard Tschumi Architects
apiblueprint: API Documentation with powerful tooling
Failing Fast with API Design / Ronnie Mitra

Dimitrios Flaco Mengidis

November 07, 2015
Tweet

More Decks by Dimitrios Flaco Mengidis

Other Decks in Programming

Transcript

  1. • Jun 2, 2014 • 500 API Artisans • 9

    Past Meetups • 1 Upcoming Meetup http://www.meetup.com/API-Athens
  2. API

  3. Client An HTTP "client" is a program that establishes a

    connection to a server for the purpose of sending one or more HTTP requests.
  4. Server An HTTP "server" is a program that accepts connections

    in order to service HTTP requests by sending HTTP responses.
  5. A payload within a GET request message has no defined

    semantics; sending a payload body on a GET request might cause some existing implementations to reject the request. 4
  6. Hypermedia A way for the server to tell the client

    what request what HTTP requests the client want to make in the future
  7. { "data": [ { "id": "1", "type": "talks", "links": {

    "self": "http://we.edu/talks/1", "author": { "related": "http://we.edu/talks/1/author" } } } ] }
  8. # We edu We ed is an API allowing consumers

    to ... # We edu API Root [ / ] ## Retrieve the Entry Point [GET] + Response 200 (application/json) { "data": [ { "id": "1", "type": "talks", //… }] }
  9. Resources Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing {json:api}:

    A standard for building APIs in JSON API Design Lifecycle / Honza Javorek New Acropolis Museum / Bernard Tschumi Architects apiblueprint: API Documentation with powerful tooling Failing Fast with API Design / Ronnie Mitra Contact Dimitrios Tydeas Mengidis, Avocarrot.com tydeas.dr@gmail. com @dmtrsslvdr