Sobre o REST

Antes de tudo precisamos ententer que o REST (Representational state transfer) não é uma ferramenta, biblioteca nem mesmo um protocolo de comunicação.

Na verdade ele é um estilo arquitetural utilizado para comunicação entre sistemas. Com outras palavras, podemos dizer que é um conjunto de princípios e definições que definem uma forma padronizada para realizar essa comunicação.

Conceitos importantes

  • Ele é fortemente ancorado pelo protocolo HTTP, fazendo uso padronizado de URLs, verbos, status, cabeçalhos e tudo mais que o HTTP nos fornece.

  • Embora seja mais comum a utilização do formato JSON, ele não é uma restrição do REST, podendo ser utilizado XML, HTML, imagem, texto, etc.

  • Se trata de uma comunicação Cliente-Servidor. Isso quer dizer que de um lado o Servidor se comporta como provedor do serviço, continuamente disponibilizando o serviço a ser acessado. Já no outro lado, podemos ter 0, 1 ou vários Clientes conectando por demanda sempre que precisarem acessar algum dos recursos disponibilizados pelo Servidor.

O HTTP

Métodos (ou Verbos) HTTP:

Cada método possui uma finalidade específica que deve ser respeitada para deixar claro aos clientes qual o efeito esperado. Os métodos mais utilizados são:

  • GET: usado para busca de informações. Não deve alterar dados no servidor.

  • POST: usado para criação de recursos no servidor.

  • DELETE: usado para remoção de recursos existentes no servidor.

  • PUT: usado para substituição de recursos previamente criados no servidor.

  • PATCH: usado para atualização parcial de recursos previamente criados no servidor.

Status de retorno:

Da mesma forma que os métodos. Os status code existentes no HTTP são utilizados. Os status mais utilizados são:

Status de sucesso:

Ou seja, a operação foi realizada:

  • 200: acompanhada de retorno de informações.
  • 204: sem informações de retorno.
  • 201: com a criação de informações.
  • 202: de forma assíncrona, ou seja, foi recebida para processamento.

Status de erro de cliente:

Ou seja, a operação não foi realizada, e a responsabilidade provavelmente é do cliente:

  • 400: e o motivo provavelmente está no retorno da requisição.
  • 400: pois a informação solicitada não existe.
  • 422: pois houve falha em uma validação de negócio.
  • 401: por falta de autenticação.
  • 403: por falta de permissão.

Status de erro de servidor:

Ou seja, a operação não foi realizada, e a responsabilidade provavelmente é do servidor:

  • 500: e o motivo provavelmente está no retorno da requisição.
  • 503: pois o serviço está indisponível.
  • 502: pois um serviço necessário está retornando algo inesperado.
  • 504: pois um serviço necessário está demorando para responder.

Mais informações:

Gosta de vídeo?

REST // Dicionário do Programador - Código Fonte TV:

O QUE É UMA API RESTful NA PRÁTICA? MATURIDADE DE RICHARDSON - Michelli Brito: