DEV Community

Filipe Sguarizi Panceri
Filipe Sguarizi Panceri

Posted on

REST API Snippets

Seguindo com a proposta de trazer um conteúdo mais rápido e prático de RESt API's, hoje vamos falar um pouco sobre o uso de PUT e PATCH, mas vou fazer um resumo sobre cada verbo HTTP.

GET

Esse é o que a maior parte das pessoas conhece, uma tradução ipsis literis do verbo te ajuda a entender que deve ser usado para obter algum recurso do servidor. Se você abrir o debug do chrome em qualquer página que estiver navegando vai ver centenas de chamadas GET obtendo informações/artefatos/assets usando o método GET. O mais importante aqui é que esse verbo NÃO deve alterar nenhum estado no servidor de origem.

POST

Diria que esse é o segundo mais usado, mas tem a função de criar um recurso no servidor. Pensando em um CRUD, esse é o cara responsável pelo CREATE. Por ser a porta de entrada do recurso em questão, devemos trabalhar muito com as validações para tornar esse recurso usável dentro da nossa aplicação. É aqui que você implementa coisas como:

  • Validar CPF
  • Garantir que o formato da Data esteja correto

DELETE

Acho que esse é o mais fácil de entender. Seu objetivo é o que você imagina, deletar (ou marcar como removido) um recurso específico. Inclusive a própria RFC diz que é algo semelhante ao comando rm do linux, expressa uma operação de exclusão no mapeamento de URI do servidor de origem.

PUT

Esse verbo na sua essência existe para solicitar uma alteração a um recurso em um servidor, e aqui que boa parte das pessoas se perdem uma vez que ele se propõe a alterar TODO o recurso em questão (passando todos os atributos de fato).

Ex:

Estado antes da requisição

{
  "nome": "Elon Musk",
  "idade": 50,
  "dataAniversario": "1971-06-28"
}
Enter fullscreen mode Exit fullscreen mode

Estado após chamada (alterando, nome e idade mas sendo necessário fornecer aniversário também)

PUT /clientes/1

{
  "nome": "Elon Musk 1",
  "idade": 51,
  "dataAniversario": "1971-06-28"
 }
Enter fullscreen mode Exit fullscreen mode

PATCH

Aqui o verbo também indica uma alteração no estado daquele recurso, mas o escopo é menor. Esse método deve ser usado como forma de atualizar 1 (ou mais atributos) garantindo a consistência da entidade como um todo.

Ex:

Estado antes da requisição

{
  "nome": "Elon Musk",
  "idade": 50,
  "dataAniversario": "1971-06-28"
}
Enter fullscreen mode Exit fullscreen mode

Estado após chamada (alterando, nome apenas)

PATCH /clientes/1

{
  "nome": "Elon Musk da Silva"
}
Enter fullscreen mode Exit fullscreen mode
{
  "nome": "Elon Musk da Silva",
  "idade": 50,
  "dataAniversario": "1971-06-28"
}
Enter fullscreen mode Exit fullscreen mode

Existem questões mais técnicas acerca dos dois verbos, e acho que o importante lembrar (para não esquecer mais), é saber que por definição o PUT é idempotente enquanto o PATCH não.

Tem algo sobre RESt API`s que gostaria de saber mais?? Deixa ai nos comentários!!!

Discussion (0)