Teoria
REST (Representational State Transfer ou Transferência de Estado Representacional) é concebido como uma abstração da arquitetura da web. Trata-se de um conjunto de princípios e definições necessários para a criação de um projeto com interfaces bem definidas.
É um dos modelos de arquitetura que foi:
- Descrito por Roy Fielding, um dos principais criadores do protocolo HTTP; e
- Adotado como o modelo a ser utilizado na evolução da arquitetura do protocolo HTTP.
Arquitetura REST é um modelo a ser utilizado para se projetar arquiteturas de software distribuído, baseadas em comunicação via rede.
REST é baseado no design do protocolo HTTP, que já possui diversos mecanismos embutidos para representar recursos, tais como:
- Código de status;
- Representação de tipos de conteúdo; e
- Cabeçalhos.
A ideia por trás da comunicação entre aplicações utilizando essa arquitetura é utilizar o paradigma request-replay (requisição e resposta). Para ilustrar esse paradigma, temos o seguinte exemplo:
- Ao abrir o navegador, ele estabelece uma conexão TCP/IP com o servidor de destino e envia uma requisição HTTP com o endereço buscado;
- Então, o servidor interpreta a requisição, retornando com uma resposta HTTP ao navegador;
- Essa resposta pode ser completa, com representações em formato HTML, ou apresentar erro, afirmando que o recurso solicitado não foi encontrado;
- Esse processo é repetido diversas vezes em um período de navegação;
- Cada nova URL aberta ou formulário submetido refaz as etapas descritas, dessa forma, esses elementos permitem a criação de aplicações web, desenhando a forma como se navega na internet.
Os principais pontos da Arquitetura REST são:
- URL’s do sistema;
- Que mapeiam os diversos recursos disponibilizados; e
- Recursos;
- Também chamados de Entidades;
- Que são manipulados através dos métodos padrão do protocolo HTTP (GET, POST, PUT, DELETE, etc).
A Arquitetura REST vê cada aplicação web como um conjunto de recursos. Esses recursos representam um estado particular de uma aplicação. Quando se acessa um desses recursos, transfere-se o estado (conteúdo), podendo alterar o seu estado.
É interessante frisar que REST e RESTFul possuem significados diferentes. Enquanto REST representa um conjunto de princípios de arquitetura, RESTful representa a condição de um sistema específico em aplicar os conceitos de REST. Por exemplo, se uma API é criada seguindo os padrões da arquitetura REST, então chamamos de RESTFul API. Se um web service é criado seguindo os padrões da arquitetura REST, chamamos de RESTFul Web Service.
Questões de concursos
[FGV 2022 TJDFT – Analista Judiciário – Análise de Dados – ADAPTADA] No âmbito de Web services, analise as afirmativas a seguir sobre a abordagem REST e o uso de tecnologias baseadas em SOAP. (Marque CERTO ou ERRADO o texto do item)
I) Uma característica dos serviços Web RESTful é a capacidade de transmitir dados diretamente via HTTP.
Comentários:
REST é baseado no design do protocolo HTTP, que já possui diversos mecanismos embutidos para representar recursos, tais como:
- Código de status;
- Representação de tipos de conteúdo; e
- Cabeçalhos.
Gabarito: CERTO.
[UFC 2019 UFC – Técnico de Tecnologia da Informação/Desenvolvimento de Sistemas – ADAPTADA] Sobre Web services, assinale a alternativa correta. (Marque CERTO ou ERRADO o texto da letra)
[C] As APIs de Web services que aderem às restrições de arquitetura REST são chamadas de APIs RESTful.
Comentários:
Enquanto REST representa um conjunto de princípios de arquitetura, RESTful representa a condição de um sistema específico em aplicar os conceitos de REST.
Com isso, as APIs de Web services que aderem às restrições de arquitetura REST são chamadas de APIs RESTful.
Gabarito: CERTO.
[FCC 2018 DPE/AM – Assistente Técnico de Defensoria – Programador – ADAPTADA] De acordo com a arquitetura REST, um serviço Web RESTful. (Marque CERTO ou ERRADO o texto da letra)
[D] não funciona bem com os protocolos HTTP.
Comentários:
REST é baseado no design do protocolo HTTP, ou seja, texto totalmente errado.
Gabarito: ERRADO.
[FCC 2014 Câmara Municipal de São Paulo/SP – Consultor Técnico Legislativo – Informática] Pela sua simplicidade e facilidade de entendimento, praticamente qualquer cliente ou servidor com suporte aos protocolos …I…. pode fazer uso do REST. Uma de suas principais vantagens é o aproveitamento da infraestrutura web existente, mas a baixa segurança é seu principal ponto fraco. Em situações em que não se faz necessária alta padronização e alta segurança essa tecnologia funciona bem. Os web services RESTful expõem recursos para seus clientes, que são identificados através de …II… . A manipulação dos recursos se dá através de operações básicas como …III… .
As lacunas I, II e III são, correta e respectivamente, preenchidas por:
[A] TCP/IP – caches – PUT, GET, POST e DELETE
[B] XML/JSON/RSS/Atom – URIs – CRUD stateless: Create, Read, Update, Delete
[C] HTTP/HTTPS – URIs – PUT, GET, POST e DELETE
[D] XML/JSON/RSS/Atom – URLs – CRUD stateless: Create, Read, Update, Delete
[E] HTTP/HTTPS – caches – CRUD stateless: Create, Read, Update, Delete
Comentários:
Completando as lacunas do texto da questão, temos:
Pela sua simplicidade e facilidade de entendimento, praticamente qualquer cliente ou servidor com suporte aos protocolos HTTP/HTTPS pode fazer uso do REST. Uma de suas principais vantagens é o aproveitamento da infraestrutura web existente, mas a baixa segurança é seu principal ponto fraco. Em situações em que não se faz necessária alta padronização e alta segurança essa tecnologia funciona bem. Os web services RESTful expõem recursos para seus clientes, que são identificados através de URI’s. A manipulação dos recursos se dá através de operações básicas como PUT, GET, POST e DELETE.
Resumindo:
- Item I: HTTP/HTTPS:
- REST é baseado no design do protocolo HTTP;
- Item II: URI’s:
- Mapeiam os diversos recursos disponibilizados; e
- Item III: PUT, GET, POST e DELETE:
- São métodos padrão do protocolo HTTP que são usados para manipulação de recursos.
Gabarito: Letra c.
[FAPEC 2018 UFMS – Analista de Tecnologia da Informação – ADAPTADA] Considere as afirmações a seguir: (Marque CERTO ou ERRADO o texto do item)
[II] Web services baseados sobre a arquitetura REST são conhecidos como RESTFul Web services.
Comentários:
Se um web service é criado seguindo os padrões da arquitetura REST, chamamos de RESTFul Web Service.
Gabarito: CERTO.
Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo