DEV Community

Cover image for API REST e RESTFUL
Henrique Holtz
Henrique Holtz

Posted on

API REST e RESTFUL

Olá dev, tudo bem? 😃

Hoje explicarei de forma simples e direta os conceitos de uma API REST e como ela pode ser denominada como uma API RESTFUL.

Representational State Transfer (REST)
Uma API pode ser denominada como RESTFUL quando cumpre todo o conjunto de 05 princípios de arquitetura :

Stateless (Sem estado): Esse princípio diz que cada requisição feita a API deve ser independente, ou seja, ter todos os dados necessários para autenticação e autorização, por exemplo, quando aplicável.

Client-Server (Separação de Cliente-Servidor): Esse princípio diz que devemos separar a interface do usuário (normalmente gráfica) do armazenamento de dados.

Layered System (Camadas de sistema): A indicação é de que a arquitetura da API seja construída com camadas independentes, de forma que cada camada não pode ver além da camada adjacente, bem como as mudanças de uma camada não afetem as demais. É recomentado que entre o cliente-servidor tenha-se uma balanceador de carga (Load Balancer). Uma das vantagens de ter uma API dividida em camadas é que a arquitetura se torna menos completa e fica mais propensa a modificações.

Cache (Armazenamento em cache): O cache é um armazenamento em memória do lado do servidor que ajuda muito quando o assunto é performance e eficiência, visto que uma informação "cacheada" é retornada de forma muito mais rápida. A indicação é que seja possível fazer uma consulta sem cache a qualquer momento através de um recurso chamado HTTP Header.

Uniform Interface (Interface Uniforme): Resume-se em componentes uniformes entre cliente-servidor. Subdividida em 4 partes:

* Identificação dos Recursos;
* Representação dos recursos;
* Mensagens auto descritivas;
* Hypermedia (HATEOAS);
Enter fullscreen mode Exit fullscreen mode

 
 

Algumas boas práticas são:

  • Criar rotas no plural, por exemplo:
    https://meusite.com.br/produtos
     

  • Utilizar letras minúsculas;

  • Manter coerência nos métodos HTTP, exemplos mais comuns:

Método Descrição
GET Consultas em geral
POST Normalmente utilizado para inserção de registros
PUT Edição de registros
DELETE Deletar registros

 

  • Manter coerência com os códigos de retorno das chamadas (StatusCode), alguns exemplos:
Código Descrição
✅ 200 Ok
✅ 201 Criado
⚠️ 401 Não Autorizado
⚠️ 403 Acesso Proibido
❌ 500 Erro interno do Servidor

 
Henrique Holtz, desenvolvedor de software. ✌️

Top comments (0)