Ultimamente, tenho me interessado em me familiarizar com o REST. Tentei ler a entrada do wiki no REST , mas não ajudou em nada. Eu realmente aprecio isso se alguém puder explicar em inglês simples (isto é, sem jargão técnico desnecessário )
- O que é REST
- Que posição ocupa no ecossistema de arquitetura da web
- Quão firmemente (ou frouxamente) é acoplado ao protocolo.
- Quais são as alternativas para o REST e como o REST se compara a elas.
Entendo que talvez não seja possível responder a isso em um ou dois parágrafos; nesse caso, os links relevantes serão muito apreciados.
Respostas:
Inglês simples:
REpresentational: a ação de falar ou agir em nome de alguém.
Transferência de estado: status da transferência.
Técnico:
REST vs SOAP
fonte
O que é REST?
REpresentational State Transfer. Ele descreve como um sistema pode se comunicar com outro. Um exemplo seria o estado de um produto (nome, descrição, etc.) representado como XML, JSON ou texto sem formatação. A idéia generalizada de estado é denominada recurso.
Que posição ocupa em um ecossistema de arquitetura da web?
O REST é comumente associado à interface de serviços da web, já que o HTTP é de longe o protocolo de operadora mais comum. No modelo de 7 camadas, ele existe na camada de aplicativo . No entanto, consulte a próxima seção.
Quão firmemente (ou frouxamente) é acoplado ao protocolo?
REST não é HTTP. Ele usa HTTP porque, na sua forma mais geral, o REST existe para ajudar uma máquina a mapear o conceito de um verbo contra uma coleção arbitrária de substantivos. O HTTP contém um conjunto útil de verbos genéricos (GET, PUT, PATCH etc.) que podem ser aplicados a substantivos arbitrários expressos como URIs usando HTTP, por exemplo, GET http://example.org/Product(54 ).
Quais são as alternativas ao REST e como o REST se compara a elas
Isso é semelhante a perguntar "Qual é a minha abordagem de RESTful?" Use a seguinte lista (resumida no Richardson Maturity Model, conforme descrito por Martin Fowler ):
Nível 0 - O pântano de POX
Use POST para tudo (lê, grava, exclui). Isso é SOAP, POX, RPI, etc. Você está apenas usando HTTP como um túnel para seu próprio protocolo. Você direciona um único terminal que faz tudo com base no conteúdo do corpo da solicitação.
Nível 1 - Recursos
Use o POST para tudo. Segmente vários pontos de extremidade projetados para fornecer informações sobre uma coisa específica. Você acabou de descobrir recursos.
Nível 2 - verbos HTTP
Use verbos HTTP contra recursos. Agora você está conseguindo. POST é criar, PUT é sobrescrever, OPTIONS para operações disponíveis, DELETE para, bem, excluir o recurso. Como resultado do uso desses verbos, diferentes códigos de status HTTP começam a se tornar mais relevantes (202 ACEITO ALGUÉM?).
Nível 3 - Controle de hipermídia ( HATEOAS )
Nesse ponto, você dá o salto final e introduz a hipermídia como um mecanismo de controle de fluxo. Um cliente REST não precisa de conhecimento prévio sobre como interagir com qualquer aplicativo ou servidor específico, além de um entendimento genérico da hipermídia. Isso pode ser comunicado em HTTP através do campo de cabeçalho Content-Type. Os formatos de texto incluem AtomPub e HAL (mais conciso) , enquanto o HyperAudio funciona bem para fluxos de áudio (consulte SoundCloud et al)
fonte
state transfer
não representação. a ação de falar ou agir em nome de alguém é representação como funciona nesse contexto?Embora o REST seja uma abreviação de Representational State Transfer, pode ser mais fácil considerar a ideia de executar várias ações por meio de uma interface um tanto intuitiva.
Por exemplo, um URL como http://www.mysite.com/FindProduct/125/ pode ser interpretado como alguém que deseja obter informações sobre o produto com um ID de 125.
Embora o REST seja geralmente considerado em termos de HTTP, o conceito pode ser aplicado a outros protocolos, conforme observado na referência da Wikipedia.
Outros exemplos de REST que podem ser úteis:
fonte