DEV Community

Cover image for Rest e seus níveis de maturidade
William Koller
William Koller

Posted on

10 1

Rest e seus níveis de maturidade

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
Image description

GET - http://localhost:3005/products/getProduct/628bd53ff6a8e68c40859468

Image description

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.

Image description

  • 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"
}
Enter fullscreen mode Exit fullscreen mode
HTTP/1.1 201 Created
Location: /products/628bda5a314e825e8965e05a
Enter fullscreen mode Exit fullscreen mode
  • 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:

Image description

Referências:

Código de exemplo: https://github.com/williamkoller/rest-example-with-nestjs

Espero ter ajudado <3;

Billboard image

Use Playwright to test. Use Playwright to monitor.

Join Vercel, CrowdStrike, and thousands of other teams that run end-to-end monitors on Checkly's programmable monitoring platform.

Get started now!

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay