Rest API
- Rest API
Interface uniforme
As interações entre os componentes da Web – ou seja, seus clientes, servidores e intermediários
baseados em rede – dependem da uniformidade de suas interfaces. Se algum dos componentes se
desviar dos padrões estabelecidos, o sistema de comunicação da Web será interrompido.
O estilo arquitetônico REST é comumente aplicado ao design de APIs para serviços da Web modernos. Uma API da Web em conformidade com o estilo arquitetônico REST é uma API REST
Ter uma API REST torna um serviço web “RESTful”
Formato URI
-
Não devemos colocar “/” no final da URI
-
Hífen (-) deve ser usado para melhorar legibilidade
-
Sublinhados (_) não deve ser usados em URIs
-
Usar letras minúsculas de preferência
-
Não se deve usar a extensão do arquivo na URI
- Para isso existe o cabecalho com o
content-type
- Para isso existe o cabecalho com o
-
Nomes de função CRUD não devem ser usados em URIs
-
Os métodos de solicitações HTTP devem ser usados para indicar qual função CRUD é executada
-
DELETE /users/1234 - OK
GET /deleteUser?id=1234 - ERRADO
GET /deleteUser/1234 - ERRADO
DELETE /deleteUser/1234 - ERRADO
POST /users/1234/delete - ERRADO
-
Methods
- GET pode conter cabeçalhos, mas
não corpo - HEAD retorna apenas os cabecalho da requisição sem o corpo. Ele é um “GET” sem o corpo
- PUT deve inserir ou atualizar um recurso a um armazenamento
- POST os clientes usam POST ao tentar criar um novo recurso em uma coleção
- Os clientes usam o método POST para invocar os recursos do controlador orientado a função
- o método POST não deve ser usado para obter, armazenar ou excluir recursos
Status code
200- Exige corpo202 (“Aceito”)deve ser usado para indicar o início bem-sucedido de uma ação
assíncrona Uma resposta 202 indica que a solicitação do cliente será tratada de forma
assíncrona.
204 (“Sem conteúdo”)deve ser usado quando o corpo da resposta estiver
intencionalmente vazio O código de status 204 geralmente é enviado em resposta a uma
solicitação PUT, POST ou DELETE , quando a API REST se recusa a enviar qualquer mensagem de
status ou representação no corpo da mensagem de resposta.
301 (“Movido Permanentemente”)deve ser usado para realocar recursos O código de
status 301 indica que o modelo de recursos da API REST foi redesenhado significativamente e um
novo URI permanente foi atribuído ao recurso solicitado pelo cliente. A API REST deve especificar o novo URI no cabeçalho Location da resposta
404 (“Not Found”)deve ser usado quando o URI de um cliente não pode ser mapeado para um recurso
Cabecalhos HTTP
Content-type: Nomeia o tipo de dados encontrados no corpo de uma mensagem de solicitação ou respostaContent-length: fornece o tamanho do corpo da entidade em bytes. É importante para o cliente se ele leu corretamente os valores enviadosLast-Modified: Deve ser usado apenas em respostas, o valor é um carimbo de data/hora que indica a última vez que algo acontecer para alterar o estado do recurso. Esse cabecalho sempre deve ser fornecido em resposta a solicitações GET (Esquisito pois teriamos que deixar a data salva no banco ou em cache)- Pontos interessantes sobre o método PUT e operações condicionais na página 53-54
Location: Define a URL do recurso recém criadoDate: Deve definir o horário do retorno da resposta- Se a resposta da API não deve ser usado para armazenar cache, devemos definir
Cache-Control: no-cache ou no-storePragma: no-cacheExpires: 0