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

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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

WordPress.com.

Acima ↑

%d blogueiros gostam disto: