O que sabemos sobre Rest:
- Muitos desenvolvedores "já sabem trabalhar com REST";
- Representational state of transfer (Transferência Representacional de Estado);
- surgiu em 2000 por Ray Fielding em uma dissertação de doutorado;
- Simplicidade;
- Stateless (sem guardar estado);
- Cacheável;
REST: Níveis de maturidade (Richardson Maturity Model)
- Nível 0 - POX:
Nível 0 de maturidade significa que uma determinada aplicação não utilizou os recursos de URI, métodos HTTP e Hypermedia (HATEOAS);
Iremos notar que nesse exemplo modelo mais comum, faz uso apenas de verbos POST e GET:
POST - http://localhost:3005/products/saveProduct
GET - http://localhost:3005/products/getProduct/628bd53ff6a8e68c40859468
Logo... nada a ver com REST e muito distante de RESTful.
- Nível 1 - Recursos:
Nível 1 de maturidade considera a utilização eficiente de URIs. Os recursos são mapeados, porém não empregam com eficiência o uso dos verbos.
- Nível 2 - VERBOS HTTP (HTTP VERBS):
Nível 2 de maturidade considera o uso eficiente de URIs e verbos HTTP.
Nesse nível, a API suporta os seguintes verbos HTTP:
– HTTP POST: utilizado para criar registro em banco de dados;
– HTTP GET: utilizado para a leitura de registros em banco de dados;
– HTTP PUT: utilizado para atualizar um determinado registro em banco de dados;
– HTTP PATCH: utilizado para atualizar parte de um determinado registro em banco de dados.
Exemplo:
POST /products
{
name: "Notebook Samsung Book Np550 Celeron"
description: "4gb 500gb 15.6 W11 Cinza"
}
HTTP/1.1 201 Created
Location: /products/628bda5a314e825e8965e05a
- Nível 3 - HATEOAS:
Nível 3 conhecido por Hypermedia as the Engine of Application State, Roy Fielding descreve HATEOAS como uma das premissas necessárias para considerar um API RESTful.
Exemplo:
Referências:
Código de exemplo: https://github.com/williamkoller/rest-example-with-nestjs
Espero ter ajudado <3;
Top comments (0)