rest (ou não)

26
REST (ou não) Natã Barbosa

Upload: nata-barbosa

Post on 12-Apr-2017

224 views

Category:

Software


0 download

TRANSCRIPT

Page 1: REST (ou não)

REST (ou não)

Natã Barbosa

Page 2: REST (ou não)

REpresentational State Transfer

Representação do estado de um recurso.

Page 3: REST (ou não)

Stateless: O servidor apenas recebe as informações necessárias para retornar a representação, não precisa conhecer o cliente.

Page 4: REST (ou não)

Utilize (quase sempre) substantivos, não verbos.

Page 5: REST (ou não)

/carros/revendedoras

/listaCarros/gravaRevendedora

Page 6: REST (ou não)
Page 7: REST (ou não)

E a associação entre recursos, como fica?

Page 8: REST (ou não)

/revendedoras/153/carros

/carros/revendedora/153

Page 9: REST (ou não)

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

Page 10: REST (ou não)

Para variações através de atributos, como faz?

Page 11: REST (ou não)

/carros?cor=azul&ano=2010

/carros/cor/azul/ano/2010

Page 12: REST (ou não)

Para cálculos, transações ou outras operações?

Page 13: REST (ou não)

/converter?de=F&para=C&valor=50

Cálculos

/busca?q=ford+focus

Busca

/carros/count

Contagem

Page 14: REST (ou não)

E quando algo der errado?

Page 15: REST (ou não)

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.” }

Page 16: REST (ou não)

E segurança?

Page 17: REST (ou não)

oAuth2

Page 18: REST (ou não)

Uma implementação semelhante a esta, pode ser chamada de API REST?

Page 19: REST (ou não)
Page 20: REST (ou não)
Page 21: REST (ou não)
Page 23: REST (ou não)

Vamos ver na prática.

Page 24: REST (ou não)

Client (Application) Server (REST API + Authentication Server)

Database Server(Oracle Developer VM)

JSON

OCI Library + node-oracle

Page 25: REST (ou não)
Page 26: REST (ou não)

É isso. Perguntas?