Você está na página 1de 4

Um resumo sobre

Introdução

Antes de começarmos a usar as tecnologias Delphi DataSnap, DelphiMVCFramework


ou XData, necessitamos entender primeiramente o que é REST!

Arquitetura REST

História: REST é um termo definido no ano 2000 por Roy Fielding em sua tese de
doutorado no qual ele descreve sobre um estilo de arquitetura de software sobre um
sistema operado em rede.

REST é um acrônimo para "Transferência de Estado Representacional"


(Representational State Transfer).

Lembra-se: REST não é um padrão, não é um protocolo e sim uma arquitetura.

REST vê cada aplicação web como um conjunto de recursos, que representam um


estado particular de um aplicativo. Quando você acessa este recurso, você está
transferindo o estado (conteúdo), e talvez alterando o seu estado.

REST e RPC – Remote Procedure CALL

Uma aplicação web REST requer um enfoque de desenho diferente a uma aplicação
baseada em RPC. No RPC, dá-se ênfase à diversidade de operações do protocolo, ou
verbos; por exemplo uma aplicação RPC poderia definir operações como:
 getUser()
 addUser()
 removeUser()
 updateUser()
 getLocation()
 addLocation()
 removeLocation()
 updateLocation()
 listUsers()
 listLocations()
 findLocation()
 findUser()

Em REST, a ênfase está na diversidade de recursos, nos nomes; por exemplo, que
poderia definir os seguintes tipos de recursos:

 Usuario {}
 Localizacao {}

Princípios

REST afirma que a Web já desfrutou de escalabilidade como resultado de uma série de
conceitos de projeto fundamentais:

Um protocolo cliente/servidor sem estado: cada mensagem HTTP contém toda a


informação necessária para compreender o pedido. Como resultado, nem o cliente e
nem o servidor necessitam gravar nenhum estado das comunicações entre mensagens.
Na prática, muitas aplicações baseadas em HTTP utilizam cookies e outros mecanismos
para manter o estado da sessão (algumas destas práticas, como a reescrita de URLs, não
são permitidas pela regra do REST).

Um conjunto de operações bem definidas que se aplicam a todos os recursos de


informação: HTTP em si define um pequeno conjunto de operações, as mais
importantes são POST, GET, PUT e DELETE. Com frequência estas operações são
combinadas com operações CRUD (acrónimo do inglês Create, Read, Update and
Delete ou os famosos comandos de manipulação de dados SQL) para a persistência
de dados, onde POST não se encaixa exatamente neste esquema.

Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é
unicamente direcionado através da sua URI.

O uso de hipermídia, tanto para a informação da aplicação como para as transições de


estado da aplicação: a representação deste estado em um sistema REST são tipicamente
JSON, HTML ou XML. Como resultado disto, é possível navegar com um recurso
REST a muitos outros, simplesmente seguindo ligações sem requerer o uso de registros
ou outra infraestrutura adicional.

Recursos
“Recursos Web” foram definidos pela primeira vez na World Wide Web como
documentos ou arquivos identificados por suas URLs

 URL – Uniform Resource Locator em português é conhecido por Localizador


Padrão de Recursos.
 URI –Uniform Resource Identifier identificador uniforme de recurso
 URN – Uniform Resource Name que foi traduzido para a língua portuguesa
como “nome uniforme de recurso

Um URL completo tem a seguinte estrutura:

esquema://domínio:porta/caminho/recurso?querystring#fragmento

 esquema, ou protocolo, poderá ser HTTP, HTTPS, FTP, entre outros.


 domínio, ou máquina, designa o servidor que disponibiliza o documento ou
recurso designado.
 porta, ou porto, é o ponto lógico no qual pode-se fazer a conexão com o servidor
(opcional).
 caminho especifica o local (geralmente num sistema de arquivos) onde se
encontra o – recurso dentro do servidor.
 query string é um conjunto de parâmetros a ser enviado ao servidor, usado para
localizar, filtrar, ou mesmo criar o recurso (opcional).
 identificador de fragmento se refere a uma parte ou posição específica dentro do
recurso (opcional).

Outra Forma de representação:

VERBOS HTTP

O protocolo HTTP define um conjunto de métodos de requisição responsáveis


por indicar a ação a ser executada para um dado recurso. Embora esses métodos possam
ser descritos como substantivos, eles também são comumente referenciados como
HTTP Verbs (Verbos HTTP). Cada um deles implementa uma semântica diferente, mas
alguns recursos são compartilhados por um grupo deles, como por exemplo, qualquer
método de requisição pode ser do tipo safe, independe ou cacheable.

A lista de verbos disponíveis para uso com servidores REST é a seguinte:

 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.
 HEAD O método HEAD solicita uma resposta de forma idêntica ao método
GET, porém sem conter o corpo da resposta.
 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.
 PUT O método PUT substitui todas as atuais representações do recurso de
destino pela carga de dados da requisição.
 DELETE O método DELETE remove um recurso específico.
 CONNECT O método CONNECT estabelece um túnel para o servidor
identificado pelo recurso de destino.
 OPTIONS O método OPTIONS é usado para descrever as opções de
comunicação com o recurso de destino.
 TRACE O método TRACE executa um teste de chamada loop-back junto com
o caminho para o recurso de destino.
 PATCH O método PATCH é utilizado para aplicar modificações parciais em
um recurso.

Veja aqui APIS REST Abertas: https://any-api.com/

Referências

REST: Princípios e boas práticas

https://www.infoq.com/br/articles/rest-introduction/

http://sao-paulo.pm.org/pub/arquitetura-rest-e-o-servico-web-restful-

https://pt.wikipedia.org/wiki/REST

https://pt.stackoverflow.com/questions/43224/qual-a-diferen%C3%A7a-entre-url-e-uri

https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods

Share this:

 Twitter
 Facebook

Você também pode gostar