O que é REST? – Um resumo rápido

NodeJS 6 de Mar de 2020

REST?

REST é um estilo de arquitetura ou padrão de design para APIs.

Para que você consiga compreender todo o conteúdo desse artigo, é importante que já saiba os conceitos de API e HTTP.

Quem inventou o REST?

REST foi definido por Roy Fielding, um cientista da computação. Ele apresentou os princípios do REST em sua tese de doutorado em 2000.

RESTful

Agora, antes de entrar nos conceitos e regras para se criar uma API RESTful, vamos falar de dois termos centrais desse assunto.

  1. Cliente – o cliente é a pessoa ou software que usa a API. Pode ser um desenvolvedor, por exemplo, você, como desenvolvedor, pode usar a API do Github para ler e gravar dados nos repositórios, criar um novo repositório. Seu programa chamará a API do Github. O cliente também pode ser um navegador da web. Quando você acessa o site do Github, seu navegador é o cliente que chama a API do Github e usa os dados retornados para renderizar as informações na tela.
  2. Resurso – um recurso pode ser qualquer objeto sobre o qual a API possa fornecer informações. Na API do Instagram, por exemplo, um recurso pode ser um usuário, uma foto, uma hashtag. Cada recurso possui um identificador exclusivo. O identificador pode ser um nome ou um número.

Agora sim, vamos entrar no REST.

Um aplicativo Web RESTful expõe informações sobre si na forma de informações sobre seus recursos. Ele também permite que o cliente execute ações nesses recursos, como criar novos recursos (por exemplo, criar um novo usuário) ou alterar os recursos existentes (por exemplo, editar uma postagem).

Para que suas APIs sejam RESTful, você deve seguir um conjunto de restrições ao escrevê-las. Essas restrições REST tornará suas APIs mais fáceis de usar e mais fáceis de descobrir, o que significa que um desenvolvedor que está apenas começando a usar suas APIs terá mais facilidade em aprender a fazê-lo.

REST significa REpresentational State Transfer.

Isso significa que quando uma API RESTful é chamada, o servidor irá transferir para o cliente um representação do Estado do recurso solicitado.

Por exemplo, quando um desenvolvedor chama a API do Github para buscar um usuário específico (o recurso), a API retornará o estado desse usuário, incluindo seu nome, o número de repositórios que o usuário criou até agora, quantos seguidores ele possui , e muitas outras informações.

As representações de estado geralmente são em formato JSON, oque você provavelmente também vai encontrar nas APIs que for usar.

Interagindo com uma API

A ação que o servidor RESTful irá executar depende de duas coisas que partem do cliente.

  1. O identificador para o recurso desejado. Esse é a URL do recurso, também conhecido como endpoint.
  2. A operação que você deseja que o servidor execute nesse recurso, na forma de um método HTTP ou verbo . Os métodos HTTP mais comuns são GET, POST, PUT e DELETE.

Por exemplo, para interagirmos com a API do Github e pesquisar as informações de um usuário, devemos informar a URL que identifica esse usuário (com um identificador do usuário) e também o método HTTP GET.

Os métodos HTTP

Vamos entender alguns dos métodos HTTP mais utilizados.

  • GET – O método GET solicita a representação de um recurso específico. Requisições utilizando o método GET devem retornar apenas dados.
  • POST – O método POST é utilizado para submeter uma entidade a um recurso específico, frequentemente causando uma mudança no estado do recurso ou efeitos colaterais no servidor. Geralmente usado para criar um novo recurso.
  • PUT – O método PUT substitui todas as atuais representações do recurso de destino pela carga de dados da requisição. Geralmente utilizado para atualizar o estado de um recurso.
  • DELETE – O método DELETE remove um recurso específico.

Concluindo

Neste post vimos como funcione APIs RESTful, de modo resumido mas prático e direto. APIs são muito utilizadas na web de modo geral e você certamente irá lidar um elas.

Ficou com dúvida? deixa nos comentários..
Grande abraço, até o próximo post!

Josias Pereira

Programador full-stack sênior e apaixonado por ensinar. No tempo livre adora compartilhar conhecimentos e experiências das tecnologias de desenvolvimento back-end e front-end que mais gosta.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.