REST

 REST é um acrônimo de REpresentational State Transfer (ou, Transferência de Estado Representacional).

 Ele é um estilo de arquitetura utilizado para o desenvolvimento de aplicações web e APIs com base no protocolo HTTP. Cada tipo de requisição deve lidar com o estado de um recurso (consultar os dados de um produto, adicionar um usuário através de um cadastro, etc.).

Características

Stateless

Cada requisição é independente.

Content-type

Os retornos possuem tipos de conteúdo bem definidos (JSON, XML, HTML, etc.)

Código de retorno

Além do conteúdo, é retornado um código que informa o status do processamento solicitado. 

Principais códigos:

  • 200 - Ok: requisição bem sucedida
  • 400 - Bad Request: a requisição possui algum problema e não foi processada
  • 401 - Unauthorized: o cliente deve se autenticar para obter a resposta
  • 403 - Forbidden: o cliente não tem direito de acessar esse recurso
  • 404 - Not Found: recurso solicitado não foi encontrado
  • 500 - Internal Server Error: ocorreu algum erro interno ao tentar processar a solicitação

Veja todos aqui.

Métodos HTTP

Considerando as requisições básicas de um CRUD (Create, Read, Update e Delete), cada tipo de requisição deve ser feita utilizando seu correspondente método HTTP:
  • POST: insere um novo recurso no sistema (Create)
  • GET: método HTTP utilizado para consulta de dados (Read)
  • PUT: altera os dados de um recurso existente (Update)
  • DELETE: deleta um recurso (Delete)

RESTful

Uma aplicação RESTful é uma aplicação REST que atingiu a maturidade máxima.

Níveis de maturidade

  • Nível 0: aplicação com endpoints genéricos e mal definidos;
  • Nível 1: cada recurso possui seus próprios endpoints;
  • Nível 2: cada ação de um recurso utiliza o método HTTP correspondente;
  • Nível 3: é possível navegar entre os endpoints usando o conceito de hipermídia (HATEOAS)
  • Nível máximo: são utilizados conceitos avançados, como paginação, cache, etc.

Fontes 



Comentários

Postagens mais visitadas deste blog

Thymeleaf