API REST
Na disciplina de API REST, vamos conhecer sobre o que é uma API, REST e RESTful. E saber como funcionam as operações REST básicas.
Índice
O que são API, REST e RESTful?
O que é API Rest?
Princípios do REST
Ações
URI
Métodos HTTP
Códigos de Status HTTP
Representações
Referências Bibliográficas
O que são API, REST e RESTful?
Vamos entender o que são e como funcionam API, REST e RESTful.
API
É uma interface de usuário que é consumida por uma aplicação e permite que funcionalidades sejam utilizadas sem conhecimento da implementação de software.
REST
É um estilo arquitetural para desenvolvimento de serviços web baseado no protocolo HTTP. São princípios e regras que permitem a criação de projetos com interfaces bem definidas, permitindo que aplicações se comuniquem.
RESTful
Os sistemas que utilizam os princípios REST são chamados RESTful, ou seja, é a capacidade de determinado sistema aplicar os princípios de REST.
Princípios do REST
Para que uma arquitetura seja considerada RESTful, um conjunto de regras e princípios devem ser seguidos:
Cliente-Servidor: A separação das responsabilidades é o princípio por trás do cliente-servidor. Ao separar a interface de usuário (UI) do armazenamento de dados, é possível melhorar a portabilidade através de múltiplas plataformas de UI, simplificar os componentes do servidor, e permitir a evolução de forma independente uma vez que não há dependência entre os lados cliente/servidor.
Interface Uniforme: A característica principal que diferencia o estilo arquitetural REST dos demais é uma interface uniforme entre os componentes cliente e servidor. Como o cliente e servidor compartilham esta interface, deve-se ter um “contrato” bem definido para comunicação entre os lados. Há quatros princípios para obter uma interface uniforme: Identificação dos Recursos, Representação dos recursos, Mensagens auto-descritivas e Hypermedia.
Stateless: A comunicação entre cliente-servidor deve ocorrer independente de estado, cada requisição deve possuir toda informação necessária para que seja inteiramente compreensível.
Cache: O cache ajuda a melhorar a performance, a escalabilidade e eficiência uma vez que reduz o tempo de resposta médio quando comparado entre uma série de interações cliente-servidor. As diretivas de cache são controladas pelo servidor através do cabeçalho HTTP.
Camadas: Arquitetura deve ser construída através de camadas gerenciadas de forma independente, onde mudanças de uma camada não devem impactar nas demais. A grande vantagem de trabalhar em camadas é que a arquitetura se torna menos complexa e fica mais propensa a mudanças.
Ações
Utilizamos verbos para nomear a ação desejada a ser realizada no recurso identificado (API REST).
URI
É a interface de comunicação entre cliente-servidor de sua API REST. É através dele que é possível acessar os recursos da aplicação, ou seja, a API REST vai prover uma url base que vai utilizar os métodos HTTP para indicar as ações requisitadas.
Métodos HTTP
Um dos princípios de uma arquitetura RESTful é a manipulação dos recursos através de métodos HTTP. Os métodos HTTP vão indicar qual ação está sendo requisitada pelo consumidor de um determinado serviço. Os principais métodos HTTP utilizados são os método que representam as operações CRUD.
Verbo HTTP
Descrição
Resposta
POST
Criar um Recurso
Pode retornar o link(id) para o novo recurso
GET
Ler um Recurso
Retorna a resposta no formato solicitado.
PUT
Alterar um Recurso
Pode retornar ou não o recurso.
DELETE
Excluir um Recurso
Pode retornar o objeto deletado ou não (204)
Códigos de Status HTTP
Os códigos de status indicam a situação de uma requisição à API REST e é exibida na mensagem de retorno (Response).
Categoria
Descrição
Exemplos
1xx
Mensagens informativas
100, 102
2xx
Indicação de que a Requisição foi recebida com Sucesso
200, 201, 204
3xx
Indicação de Redirecionamento
307
4xx
Indicação de Erro por parte do Cliente
400, 401, 403, 415
5xx
Indicação de Erro por parte do Servidor
500
Representações
Quando fazemos uma requisição para um serviço web, os dados retornados podem ser em qualquer formato. Atualmente os mais conhecidos são JSON e XML. Há 3 formas de especificar o formato dos dados a serem retornados durante a requisição à API REST.
Descrição
Especificação
Parâmetros de Query
/contribuintes/{id}?format=xml /contribuintes/{id}?format=json
Sufixo
/programmes/schedules/fm/today.xml /programmes/schedules/fm/today.json
HTTP Header Accepts
Accepts: application/xml Accepts: application/json
Referências Bibliográficas
[1] https://becode.com.br/o-que-e-api-rest-e-restful/ [2] https://www.hostgator.com.br/blog/api-restful/ [3] https://www.smarti.blog.br/api-rest-principios-boas-praticas-para-arquiteturas-restful/ [4] https://www.devmedia.com.br/servicos-restful-verbos-http/37103 [5] https://blog.mbeck.com.br/api-rest-e-os-verbos-http-46e189085e21
Last updated