REST x RESTful
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/alunosSe queremos trazer a lista de alunos, basta realizamos uma requisição GET:
Request:
[GET] http://www.seusite.com/alunos
Body:emptyA 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: emptyResponse:
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: emptyResponse:
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.










