Jump to content

Você sabe como alcançar a excelência do REST?


luiz.melo

Postagens Recomendadas

Nesse post, vamos entender qual o nível de maturidade necessária para fazer com que sua API seja considerada RESTful.

De uma forma bem resumida, REST é um conjunto de restrições de arquitetura, que podem ser implementadas de diferentes maneiras.

De acordo com Leonard Richardson, existem alguns pontos para que uma API REST seja realmente considerada RESTful, podendo inclusive alcançar o nível de “glória” da sua API. Vamos então entender um pouco mais sobre o modelo de maturidade de Richardson.

 

 

Untitled.png

Nível 0: POX

Nesse nível não é utilizado nenhum padrão para nada, apenas um verbo é utilizado nas operações, por exemplo o POST, e existe apenas uma URL (rota) para processar todas as requisições. A falta de clareza desses recursos e a falta de escalabilidade podem tornar o processo totalmente inviável.

http://localhost:8080/users/action=list

http://localhost:8080/users/action=add

http://localhost:8080/users/action=update

 

Nível 1: RECURSOS (RESOURCES)

Nesse nível começamos a organizar nossa API e separar as responsabilidades dos nossos recursos. Uma rota é criada para que cada recurso seja consumido e assim vamos modelando nossa API. Agora, conseguimos trabalhar com os dados de uma maneira mais específica e otimizada.

http://localhost:8080/users

http://localhost:8080/users/1

http://localhost:8080/users/1/payment

 

Nível 2: VERBOS HTTP (HTTP VERBS)

Aqui os verbos HTTP passam a ser utilizados de acordo com o seu propósito, e também surge a preocupação de utilizar os status corretos para as requisições.

POST /users
{
  name: "LUIZ"
}


HTTP/1.1 201 Created
Location: /users/1

 

Nível 3HATEOAS

O nível 3 é atingido quando aplicamos o conceito de HATEOAS (Hypermedia Controls), onde o elemento principal é a representação de “links” que permitem que a própria resposta (response) descreva seu estado atual, e seu relacionamento com outros elementos ou futuros estados.

GET /users/1
{
    "name": "LUIZ",
    "links": [ {
        "rel": "self",
        "href": "http://localhost:8080/users/1"
    }, {
        "rel" : "delete",
        "href": "http://localhost:8080/users/1"
    ]
}

 

 

Links Uteis:

 

 

  • Curtir 3
  • Amei 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...