REST - Uma breve introdução

gabrielhsilvestre

Gabriel_Silvestre

Posted on March 28, 2022

REST - Uma breve introdução

Tabela de Conteúdo

Rest

O que é?

É um estilo de arquitetura de Software que possui um conjunto de restrições para a criação de APIs, sendo controlado pelo W3C. Em palavras mais simples, é um conjunto de regras que nossa aplicação deve seguir no momento de se comunicar com clientes, sejam eles Browsers ou outras APIs.


Restrições REST

Interface uniforme

O que é?

É a padronização sistemática e constante da interface de comunicação entre cliente e servidor. Essa interface é composta pelo endpoint, tipo de retorno e verbos HTTP.

Endpoint

O endpoint deve identificar o recurso a ser acessado/alterado, de forma que o recurso fique explícito na URL.

Tipo de retorno

Os retornos devem ser consistentes, ou seja, se enviarmos um requisição ao endpoint /products e retornarmos um Array contendo os produtos, o mesmo deve ser feito ao enviarmos uma requisição ao endpoint /categories (Array contendo as categorias).

Devemos construir os retornos padronizados para que seja possível "deduzir" o comportamento dos demais endpoints, sem a necessidade de "tentativa e erro".

Verbos HTTP

Toda a ação que vamos realizar deve ser identificada através de um verbo HTTP, sendo os principais POST, GET, PUT e DELETE. Reforçando que os verbos devem disparar ações correspondentes a seus significados, logo uma requisição GET deve apenas retornar algum recurso, sem alterar/deletar nada.


Cliente servidor

O que é?

É a desacoplação entre Cliente e Servidor, em outras palavras, nossa API deve poder ser consumida a partir de qualquer cliente, seja ele uma aplicação mobile, web, tv ou até mesmo Arduíno.

O princípio básico é a separação de responsabilidades, o servidor deve se preocupar somente com armazenamento e acesso aos dados, cache, log e outras funcionalidades essenciais para o bom funcionamento da aplicação,


Stateless

O que é?

O princípio Stateless significa que nossa aplicação não deve guardar informações em seu contexto. Uma variável que guarda o login, por exemplo.

Dessa forma, todas as requisições enviadas ao servidor devem ser autossuficientes, ou seja, devem possuir todas as informações necessárias para a realização da requisição, já que a API não irá armazenar nada.

Um exemplo fácil de entender é o de login:

Assim que uma pessoa usuária realiza o login em nosso site, iremos gerar um token de autenticação para ela, a partir daí, todas as requisições que essa pessoa for realizar, será preciso enviar o token de autenticação junto, pois nossa API "não se lembrará" da pessoa.


Cacheable

O que é?

Nossa API deve ser capaz de informar ao cliente se determinada resposta pode ser cacheada, e se puder, por quanto tempo deverá ser cacheada.

Nesse caso estamos nos referindo ao cache no lado do Cliente, logo a função de nossa API é apenas informar as regras que precisam ser seguidas.


Layered System

O que é?

Diferente da arquitetura MSC, o princípio do Layered System não tem relação com a organização do código, mas sim com a abstração da resposta da API. Isso significa que o Cliente não precisa saber o que foi feito para a resposta ser montada, apenas que recebeu uma resposta.


Code on Demand

O que é?

É a possibilidade do servidor enviar código ao cliente, esse código pode ser JavaScript, Python, C, C# ou de qualquer outra linguagem que faça sentido.

Esse princípio é opcional na construção de uma API REST, sendo assim podemos ter uma aplicação que não envia código ao servidor e continua sendo RESTful.

💖 💪 🙅 🚩
gabrielhsilvestre
Gabriel_Silvestre

Posted on March 28, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

REST - Uma breve introdução
beginners REST - Uma breve introdução

March 28, 2022