Qual é a diferença entre um sistema REST e um sistema que é RESTful?
De algumas coisas que li , os chamados serviços REST são na verdade serviços RESTful. Então qual é a diferença entre os dois.
architecture
rest
AwkwardCoder
fonte
fonte
Respostas:
Representational state transfer (REST) é um estilo de arquitetura de software. Conforme descrito em uma dissertação de Roy Fielding, o REST é um "estilo arquitetônico" que explora basicamente a tecnologia e os protocolos existentes na Web.
RESTful é normalmente usado para se referir a serviços da Web que implementam essa arquitetura.
fonte
architect
sobre o que? de URLs? comohttps://translation.googleapis.com/language/translate/v2
esse é o estilo REST?Serviços baseados em REST / Arquitetura vs. Serviços RESTFUL / Arquitetura
Para diferenciar ou comparar esses 2, você deve saber o que é REST .
RESTO ( RE apresentação S tate T ransferência) é basicamente um estilo de arquitetura de desenvolvimento tendo alguns princípios:
Deve ser apátrida
Ele deve acessar todos os recursos do servidor usando apenas URI
Não possui criptografia embutida
Não tem sessão
Ele usa um e apenas um protocolo - HTTP
Para executar operações CRUD, ele deve usar HTTP verbos tais como
get
,post
,put
edelete
Ele deve retornar o resultado apenas na forma de JSON ou XML, atom, OData etc. (dados leves)
REST based services
siga alguns dos princípios acima e nem todosRESTFUL services
significa que segue todos os princípios acima.É semelhante ao conceito de:
Object-based languages
suporta todos os conceitos de OOPs, exemplos : C ++, C #Object oriented languages
suporta alguns dos recursos de OOPs, exemplos : JavaScript, VBExemplo :
O ASP Dot NET MVC 4 está
REST-Based
enquanto a Microsoft WEB API estáRESTFul
.O MVC suporta apenas alguns dos princípios REST acima, enquanto a API WEB suporta todos os princípios REST acima.
O MVC suporta apenas o seguinte na API REST
Podemos acessar o recurso usando URI
Ele suporta o verbo HTTP para acessar o recurso do servidor
Ele pode retornar os resultados no formato JSON, XML, que é o HTTPResponse.
No entanto, ao mesmo tempo no MVC
Nós podemos usar a sessão
Podemos torná-lo estável
Podemos retornar vídeo ou imagem do método de ação do controlador, que basicamente viola os princípios REST
É por isso que o MVC é
REST-Based
que a WEB API suporta todos os princípios acimaRESTFul
.fonte
"REST" é um paradigma arquitetônico. "RESTful" descreve o uso desse paradigma.
fonte
architect
sobre o que? de URLs? comohttps://translation.googleapis.com/language/translate/v2
esse é o estilo REST?Como Jason disse nos comentários, o RESTful é usado apenas como um adjetivo que descreve algo que respeita as restrições do REST.
fonte
REST significa transferência de estado representacional. Isso significa que o próprio estado não é transferido, mas uma mera representação dele. O exemplo mais comum é um aplicativo baseado em servidor HTML puro (sem javascript). O navegador não sabe nada sobre o aplicativo em si, mas através de links e recursos, o servidor pode transferir o estado do aplicativo para o navegador. Onde um botão normalmente altera uma variável de estado (por exemplo, página aberta) em um aplicativo normal do Windows, no navegador você tem um link que representa essa alteração de estado.
A idéia é usar a hipermídia. E talvez para criar novos tipos de hipermídia. Potencialmente, podemos expandir o navegador com javascript / AJAX e criar novos tipos de hipermídia personalizados. E teríamos uma aplicação REST verdadeira.
Esta é minha versão curta do que o REST representa, o problema é que é difícil de implementar. Pessoalmente, digo RESTful, quando quero fazer referência aos princípios REST, mas sei que não estou realmente implementando todo o conceito de REST. Na verdade, não dizemos SOAPful, porque você usa SOAP ou não. Acho que a maioria das pessoas não faz o REST da maneira que foi concebida por seu criador, Roy Fielding, na verdade implementamos arquiteturas RESTful ou RESTlike. Você pode ver a dissertação e encontrará a sigla REST, mas não a palavra RESTful.
fonte
REST é um estilo de arquitetura de software para software distribuído
A conformidade com as restrições REST é chamada de 'RESTful'.
Muito usado hoje em dia para criar serviços da Web como uma alternativa ao SOAP.
Aqui você tem alguns links para verificar
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
fonte
obrigado pelas respostas. Leia este artigo de Alex Rodriguez, que sugere que um serviço da web RESTful possui 4 características básicas, que são:
fonte
Representational State Transfer (REST) é um estilo de arquitetura de software para sistemas hipermídia distribuídos, como a World Wide Web. O termo Representational State Transfer foi introduzido e definido em 2000 por Roy Fielding 1 [2] em sua tese de doutorado. Fielding é um dos principais autores das versões 1.0 e 1.1 da especificação Hypertext Transfer Protocol (HTTP). A conformidade com as restrições REST é chamada de 'RESTful'. Fonte: Wikipedia
fonte
Serviços da Web são essencialmente sites cujo conteúdo é consumido por programas de computador, não por pessoas. O REST é um conjunto de princípios arquiteturais que estipulam que os serviços da Web devem aproveitar ao máximo o HTTP e outros padrões da Web, para que os programas obtenham todas as coisas boas que as pessoas já podem obter da Web. O REST geralmente é contrastado com os serviços web SOAP e outros serviços web orientados à "chamada de procedimento remoto".
As apresentações de Stefan Tilkov no REST no Parleys.com são muito boas, especialmente esta .
Para um livro, você não pode ter nada melhor do que os Restful Web Services de Richardson e Ruby .
fonte
Um serviço baseado em REST é chamado de "serviço RESTful".
Fonte Eu confio em postar isso: Dr.Dobbs Archive
fonte
Existem 4 níveis de API definidos no Richardson Maturity Model. Eles são definidos como:
nível 0: qualquer sistema que tenha um único ponto de extremidade para todas as suas APIs (SOAP ou RPC se enquadram nessa categoria). As APIs de nível 0 também podem se parecer com "comandos".
nível 1: um sistema descrito pelo ResourceUri. Este é um sistema que define vários URIs baseados em entidades (em vez de ter um único terminal como um sistema de nível 0). Esses URIs podem usar ações http diferentes (POST, GET, PUT etc.) para implementar ações diferentes nesse recurso.
nível 2: também conhecido como nível 1, com uso compatível dos métodos / verbos HTTP padrão e respostas com códigos de status múltiplos
nível 3: também conhecido como nível 2 mais HATEOAS (hipermídia incluída na resposta que descreve chamadas adicionais que você pode fazer)
Embora os níveis 1, 2 e 3 possam ser considerados sistemas REST, apenas os níveis mais rígidos (também conhecidos como nível 2 e nível 3) são considerados RESTful.
Portanto, essencialmente todas as APIs RESTful são APIs REST, mas nem todas as APIs RESTful são RESTful
definição do modelo de maturidade de Richardson
fonte
Pense no REST como uma "classe" arquitetônica, enquanto RESTful é a "instância" bem conhecida dessa classe.
Por favor, observe o ""; não estamos lidando com objetos de programação "reais" aqui.
fonte
Um "serviço REST" e um "serviço RESTful" são iguais.
Um sistema RESTful é qualquer sistema que segue as convenções REST, conforme definido no documento original, que criou a idéia de aplicativos em rede RESTful .
Vale a pena notar que existem vários níveis de RESTfulness. No geral, o REST é um estilo, não um padrão, portanto, há espaço para interpretação com base nas necessidades. um exemplo são os URLs de recursos hierárquicos (por exemplo
/things/ID/relatedthings
) vs URLs simples (por exemplo,/things/ID
e/relatedthings?thing=ID
)fonte
REST (REpresentation State Transfer) é uma arquitetura que utiliza os WebServices.
e
RESTful é uma maneira de escrever serviços usando as arquiteturas REST. Os serviços RESTful expõem os recursos para identificar os destinos para interagir com os clientes.
fonte
REST é um padrão de arquitetura para criar serviços da web. Um serviço RESTful é aquele que implementa esse padrão.
fonte