Este documento fornece uma introdução sobre APIs REST, definindo o que é REST e hipermídia, discutindo como projetar e implementar uma API REST passo a passo e mencionando algumas ferramentas e bibliotecas úteis. O documento explica como entender o fluxo de trabalho da API, construir uma máquina de estados, criar tipos de mídia e implementar a API usando exemplos de pedidos e pagamentos em uma lanchonete.
14. O que é REST/Hypermedia?
•
Construção de sistemas distribuídos
•
Em 99% dos casos sistemas que funcionam na
Web
•
Aplicativos mobile conversando com APIs
•
Aplicativos Web convesando com Aplicativos Web
•
Walledgarden
15. O processo
1. Entender o workflow que a API irá implementar
2. Construir máquina de estados
3. Construir media types
4. Implementar :)
27. “To some extent, people get REST wrong
because I failed to include enough detail on
media type design within my dissertation.
That’s because I ran out of time […]”
–Roy T. Fielding
28. Media types
•
É o que o cliente precisa saber para entender:
•
Comportamento (ou seja, quais transições saem
de ume estado)
•
Semântica de alguns atributos da representação
30. Exemplo: text/html
•
O browser só precisa entender o media type.
•
Tanto faz se você está vendo o extrato da sua conta
do banco ou um verbete na Wikipedia
•
media type = comportamento + semântica
32. Media types
•
É por isso que sempre dizem que APIs REST não
precisam de Documentação
•
Você só precisa descrever os media types utilizados
•
A semântica dos métodos HTTP já é bem definida
•
Utilizado nos cabeçalhos Accept e Content-‐type
42. “[…] methods are not given meaning by the media
type. Instead, the media type tells the client either
what method to use (e.g., anchor implies GET) or how
to determine the method to use (e.g., form element
says to look in method attribute). The client should
already know what the methods mean (they are
universal) and how to dereference a URI.”
–Roy T. Fielding