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 clien...
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...
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&para=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...
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-...
Vamos ver na prática.
Client (Application) Server (REST API + Authentication Server)
Database Server
(Oracle Developer VM)
JSON
OCI Library + no...
É isso. Perguntas?
REST (ou não)
REST (ou não)
REST (ou não)
REST (ou não)
REST (ou não)
Próximos SlideShares
Carregando em…5
×

REST (ou não)

211 visualizações

Publicada em

Apresentação sobre REST e Web APIs dada em workshops sobre desenvolvimento web.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
211
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

REST (ou não)

  1. 1. REST (ou não) Natã Barbosa
  2. 2. REpresentational State Transfer Representação do estado de um recurso.
  3. 3. Stateless: O servidor apenas recebe as informações necessárias para retornar a representação, não precisa conhecer o cliente.
  4. 4. Utilize (quase sempre) substantivos, não verbos.
  5. 5. /carros /revendedoras /listaCarros /gravaRevendedora
  6. 6. E a associação entre recursos, como fica?
  7. 7. /revendedoras/153/carros /carros/revendedora/153
  8. 8. 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
  9. 9. Para variações através de atributos, como faz?
  10. 10. /carros?cor=azul&ano=2010 /carros/cor/azul/ano/2010
  11. 11. Para cálculos, transações ou outras operações?
  12. 12. /converter?de=F&para=C&valor=50 Cálculos /busca?q=ford+focus Busca /carros/count Contagem
  13. 13. E quando algo der errado?
  14. 14. 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.” }
  15. 15. E segurança?
  16. 16. oAuth2
  17. 17. Uma implementação semelhante a esta, pode ser chamada de API REST?
  18. 18. http://www.smartjava.org/content/presentation-rest-hateoas http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext- driven
  19. 19. Vamos ver na prática.
  20. 20. Client (Application) Server (REST API + Authentication Server) Database Server (Oracle Developer VM) JSON OCI Library + node-oracle
  21. 21. É isso. Perguntas?

×