Compreendendo o Conceito e Filosofia da REST

Compreendendo o Conceito e Filosofia de DESCANSO

  

REST é um tema controverso entre os entusiastas de serviço da Web, porque isso é considerado para representar o oposto do que Web services e SOA estão tentando conseguir. O problema com este pensamento é que REST não está em contradição com a definição abstrata de SOA e Web services. Resto está em contradição com as tecnologias como SOAP, WSDL e WS-* especificações. A seguir oferece uma definição rápida de descanso: REST é sobre o projeto de banco de dados e SOAP é sobre o projeto da API. A definição em si é controverso, pois muitos acham que SOAP pode ser usado para criar documentos basedWeb serviços. No entanto, falta-lhes o facto de resto não se referem aos dados enviados entre o cliente eo servidor. Refere-se à forma de abordar e enviar ou receber os dados. Digamos que você está escrevendo um Web service SOAP, o que significa que você estará criando um documento WSDL. WSDL em si implica a definição de um ponto de acesso com operações, ou na programação termos de linguagem, APIs. As APIs podem apoiar a transferência de documentos, mas as operações WSDL são humanos. Esta não é uma coisa ruim, apenas um ponto de referência para dizer que SOAP é de cerca de APIs REST. É sobre como usar o protocolo HTTP para manipular o estado indicado por um recurso. A linguagem de programação SQL é usada para manipular dados relacionais. Na linguagem SQL, verbos, como INSERT, SELECT, UPDATE e DELETE, executar ações sobre os dados. REST usa esses verbos, mas são verbos HTTP: PUT, POST, GET, e DELETE. Tudo o que você precisa fazer para os dados pode ser expresso nos verbos, independentemente se você estiver usando HTTP ou SQL. Outra diferença entre design e design de banco de dados API é que com o design de banco de dados, você está trabalhando com conjuntos.

Os conjuntos podem ter nenhum, um ou muitos elementos. A contagem não importa. Com APIs, o número de elementos que realmente importa, porque você precisa criar explicitamente APIs que manipulam ou não, um ou vários elementos. Nenhuma dessas comparações servem para dizer que um é bom eo outro é ruim. Em vez disso, eles servem para ilustrar que REST e SOAP são muito diferentes em suas abordagens. Toda esta teoria soa como mão acenando, assim que a melhor maneira de explicar a teoria é implementar um serviço usando REST. A aplicação da calculadora exemplo, começa com uma abordagem tradicional API, converte o aplicativo em uma abordagem REST preliminar, e então transforma a solução preliminar para uma completa solução REST desenvolvido. A solução é ilustrada REST preliminar para demonstrar que nem todas as soluções REST aproveitar todos os recursos de descanso. A calculadora simples só suporta memória e da adição de dois números. O servidor adiciona os dois números juntos e gera um resultado. Para adicionar um novo conjunto de números, você precisa clicar no botão Voltar e introduzir dois números diferentes. De uma perspectiva de transformação, representa o fluxo entre chamar a página HTML, enviando os dados para o servidor e, em seguida, gerar o resultado. Em uma aplicação Web tradicional, quando o usuário clica no botão enviar, os dados do formulário HTML (o significado conteúdo das duas caixas de texto) é recolhido e enviado para o servidor usando um HTTP POST. O servidor lê e processa os dados para gerar a resposta na forma de uma página HTML.

Os resultados do POST são fixos. Isto significa que qualquer página HTML com um formulário HTML pode chamar o servidor de geração de lado, mas o resultado é pré-definido. No exemplo, o resultado tem de ser uma página HTML que podem ser gerados em uma página HTML. O problema é que para gerar um bom resultado, o servidor tem de ter em conta as folhas de estilo, bem como outro olhar e sensação atributos. Se você pensar sobre ele, o objetivo geral do lado do servidor POST é gerar um resultado para uma consulta. Claro que o servidor poderia empregar algumas técnicas para gerar os dados corretos no contexto correto. Isso levou a quadros sofisticados que tentam "consertar" o problema de postagem de conteúdo. Isto é o que faz Ajax um argumento tão convincente quando o desenvolvimento de aplicações web. Ajax centra-se em enviar e receber o conteúdo necessário, não os bits extra que não têm nada a fazer com o conteúdo. Ao usar o Ajax, a página inicial ainda é baixado, mas a natureza das mudanças HTTP POST. O mesmo HTTP POST é enviado, mas a resposta não tem de incluir códigos HTML necessários para criar uma página HTML completa. Ao usar o Ajax, o HTTP POST mudanças em chamada de serviço aweb que pede pedaços de conteúdo para se injectar. A peculiar mudanças aplicativo da Web de volta para um tradicional cliente / servidor, onde você pode consultar e recuperar pedaços específicos de conteúdo.

O manipulador sabe que a aplicação para chamar dependendo da informação enviada para a URL. Ele chama o método add para além disso, e ele chama o método de memória para armazenar ou recuperar a memória. No caso da recuperação da memória, que parte da memória é armazenado ou recuperado é um parâmetro. Os dados que é retornado é empacotado como uma mensagem SOAP. SOAP, em contraste com REST, oferece múltiplas funcionalidades e representações em um único URL. Anteriores, foi afirmado que o descanso é mais parecido com um banco de dados e SOAP é mais parecido com uma API. Isso é compreensível devido à forma como cada abordagem expõe sua URL, e os dados que são enviados e recebidos. A semântica do que os dados é e representa na URL é muito diferente de SOAP e REST. Em uma abordagem REST, se você usar HTTP PUT para salvar os dados no servidor, então você assume para obter os dados mesmo quando chamado HTTP GET. Em uma abordagem SOAP, se você usar HTTP PUT, você não assumir para obter os dados mesmo quando chamado HTTP GET. Na verdade, usando SOAP, você não tem idéia do que dados que você vai conseguir, porque o sabão requer algum tipo de semântica que está associada com PUT e HTTP GET através de um contrato definido em um arquivo WSDL. A diferença entre um banco de dados e abordagem API torna-se pela evolução clara no exemplo da calculadora.

Originalmente, a aplicação REST utilizado um conjunto de URLs, mas os URLs estavam erradas, porque uma abordagem API montado em cima de uma abordagem de recursos. Por exemplo, a memória é URL / services/memory/1. O URL parece correto, mas é na verdade, completamente incorreto. Como o URL é definida, o local da memória / services/memory/1 é compartilhada por todos. Para distinguir entre os diferentes utilizadores, os quadros mais aplicativos da Web usam cookies. E biscoitos, mais uma vez, a resposta está completamente errada. Imagine escrever uma aplicação em que você salvar algum valor que você quer compartilhar com alguém. Se você dá para a outra pessoa a URL que você usou para armazenar os dados, essa pessoa não conseguia acessar os dados, porque o seu identificador de cookies não seria compatível com o seu identificador de cookie. O problema é que o estado do recurso, tal como definido pela URL é dependente da URL e um identificador do cookie.

Isso viola princípios REST. REST estado princípios que, se a memória é armazenada na URL / services/memory/1, em seguida, no mesmo estado são recuperados independentemente de quem acessa a URL. Um cookie pode ser utilizado para fins de autorização. Usando um cookie, o servidor pode identificar se um pedido está autorizado a ver a representação do recurso. A solução é pensar em termos de dados e considerar o identificador de localização de memória como um identificador de linha arbitrária que faz referência a um local de memória. Isso resulta na adição ser tanto um cálculo e uma operação de memória. Ao escrever seu próprio aplicativo REST, lembre-se os seguintes pontos:

• REST é sobre o gerenciamento de dados e SOAP é sobre o gerenciamento de APIs.

• REST tem contratos dinâmica que é, os recursos estão conectados e descreveu as ligações e utilizar os cabeçalhos de HTTP do cliente. Por exemplo, um cliente pode definir o contrato a ser dados XML, e outro pode definir o contrato a ser dados em HTML. A adaptação do servidor para cada um, enviando uma representação adequada de um recurso.

• REST tem um conjunto predefinido de semântica usando HTTP GET, HTTP POST, URLs, recursos e representações.

• SOAP não tem um conjunto predefinido de semântica ou de contratos, como são definidos pelos metadados (WSDL).

• REST administra URLs de uma forma dinâmica, onde URLs são criados dinamicamente.

• URLs em uma abordagem REST representam referências a um recurso e não necessariamente um arquivo em um disco rígido.

um artigo submetido por Sonja Lande


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "Compreendendo o Conceito e Filosofia da descanso" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 263 users browsing the articles directory