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.
Comentários
Postar um comentário