Sitemap
Márcio Krüger

Márcio Krüger

Olá, eu sou Márcio Krüger, Arquiteto de Software, profissional com 21 anos de experiência em TI e desenvolvimento de sistemas.

REST x RESTful

2 min readJul 4, 2022

--

Press enter or click to view image in full size

A tempo vejo uma certa confusão quanto aos termos REST e RESTful. Entretanto, ambos representam os mesmos princípios. A diferença é apenas gramatical. Em outras palavras, sistemas que utilizam os princípios REST são chamados de RESTful.

O que é REST?

REST significa Representational State Transfer, ou no português Transferência de Estado Representacional, nada mais é que uma abstração da arquitetura da Web, o REST consiste em princípios / regras / constraints que quando seguidas permitem a criação de um projeto com interfaces bem definidas. Desta forma, permitindo, por exemplo, que aplicações se comuniquem.

O que é RESTful?

RESTful nada mais é que a capacidade da sua API ou aplicação utilizarem ao pé da letra os padrões REST.

RESTful são serviços que possuem comportamento REST. Ou seja, usando o mesmo design, seu comportamento irá mudar de acordo com a maneira que é consumido

Mas como sei se minha API é RESTful?

Vou citar alguns exemplos que fazem sua API ser RESTfull

Exemplos:

Get Márcio Krüger’s stories in your inbox

Join Medium for free to get updates from this writer.

URL:

http://www.seusite.com/alunos

http://www.seusite.com/alunos

Se queremos trazer a lista de alunos, basta realizamos uma requisição GET:

Request:
[GET] http://www.seusite.com/alunos
Body:empty

A resposta será algo como:

Response:
HTTP Code 200 OK
[
{ id: 1, nome: "João da Silva" },
{ id: 2, nome: "Maria de Jesus"}
]

Mas, se eu quiser adicionar um novo aluno, uso o mesmo design, mas consumindo de outra forma, com requisição POST:

Request
[POST] http://www.seusite.com/alunos
Body: { "nome: "Márcio" }
HTTP Code 201 Created
{ id: 3, nome: "Márcio" }

Agora para saber mais detalhes sobre um aluno utilizamos o GET passando o ID como parâmetro:

Request
[GET] http://www.seusite.com/alunos/1
Body: empty
Response:
HTTP Code 200 OK
{
id: 1,
nome: "João da Silva"
}

Para atualizar de um aluno, vamos utilizar o mesmo design, porém com verbo diferente, neste caso utilizaremos o PUT

Request:
[PUT] http://www.seusite.com/alunos/
Body: {id: 1, "nome": "Márcio Krüger" }
Response:
HTTP Code 200 OK
{
id: 1,
nome: "Márcio Krüger"
}

Para excluir, vamos utilizar o mesmo design, com verbo de exclusão, neste caso o DELETE

Request
[DELETE] http://www.seusite.com/alunos/1
Body: empty
Response:
HTTP Code 204 No Content:

Temos também o verbo PATCH, que serve para atualização parcial, para quando não queremos enviar o payload completo.

Caso ainda tenha dúvidas, se sua API tenha como controllers com nomes como Incluir, Alterar, Buscar, Excluir, sua API não é RESTful.

--

--

Márcio Krüger
Márcio Krüger

Written by Márcio Krüger

Olá, eu sou Márcio Krüger, Arquiteto de Software, profissional com 21 anos de experiência em TI e desenvolvimento de sistemas.