rest (ou não)
Post on 12-Apr-2017
228 Views
Preview:
TRANSCRIPT
REST (ou não)
Natã Barbosa
REpresentational State Transfer
Representação do estado de um recurso.
Stateless: O servidor apenas recebe as informações necessárias para retornar a representação, não precisa conhecer o cliente.
Utilize (quase sempre) substantivos, não verbos.
/carros/revendedoras
/listaCarros/gravaRevendedora
E a associação entre recursos, como fica?
/revendedoras/153/carros
/carros/revendedora/153
2 URLs por recurso, com substantivos.
URL POST GET PUT DELETE
/carros Adiciona um carro à coleção de carros
Retorna a coleção de carros
Atualiza carros em lote
Apaga todos os carros
/carro/25 Retorna erro Retorna o carro com ID 25
Atualiza o carro com ID 25, se existir.
Se não existir, retorna erro
Apaga o carro com ID 25
Para variações através de atributos, como faz?
/carros?cor=azul&ano=2010
/carros/cor/azul/ano/2010
Para cálculos, transações ou outras operações?
/converter?de=F¶=C&valor=50
Cálculos
/busca?q=ford+focus
Busca
/carros/count
Contagem
E quando algo der errado?
Retornar HTTP Status Codes:200 – OK
401– Unauthorized
{ “code”: 200, “message”: “Você solicitou um relacionamento que não existe.” }
{ “code”: 401, “message”: “Você precisa estar autenticado para solicitar esta informação, campeão.” }
E segurança?
oAuth2
Uma implementação semelhante a esta, pode ser chamada de API REST?
http://www.smartjava.org/content/presentation-rest-hateoas
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
Vamos ver na prática.
Client (Application) Server (REST API + Authentication Server)
Database Server(Oracle Developer VM)
JSON
OCI Library + node-oracle
É isso. Perguntas?
top related