Li algumas definições e discussões sobre aplicativos REST e / ou RESTful, mas ainda não entendo o real significado disso.
Normalmente, trabalho com aplicativos que buscam dados via GET ou enviam dados via POST para algum serviço da Web (geralmente um script PHP) que obtém dados do banco de dados ou escreve no banco de dados.
Agora, este é um aplicativo RESTful? Caso contrário, o que seria um aplicativo RESTful? Qual é a diferença entre o conceito RESTful e o conceito com o qual trabalhei até agora? Por favor, explique através de um exemplo.
Além disso, alguém está falando sobre o REST e alguém sobre aplicativos RESTful. Descobri que o termo REST se refere ao conceito teórico, enquanto RESTful é usado quando falamos sobre o aplicativo específico. Isso está certo ou há diferenças reais entre aplicativos REST e RESTful?
Respostas:
Os principais atributos de um aplicativo RESTful são: Toda a comunicação é via http GET, POST, PUT, DELETE E todos os itens são endereçados através de um URL padrão do formulário,
http://your.site.com/salesapp/salesperson/0000001/details
ou seja, apenas um URL puro sem parâmetros, etc. O URL identifica o que o GET , POST, PUT, DELETE identifica o que você deseja fazer.A principal razão para fazer isso é que você possui automaticamente um serviço sem estado que pode ser balanceado por carga, realizar failover etc. etc.
A pura simplicidade do esquema cria uma interface muito limpa, dissociando totalmente o cliente de qualquer implementação de back-end específica.
fonte
REST significa Representational State Transfer. Se o seu software estiver em conformidade com as restrições REST , ele será considerado RESTful.
Certo, agora que rasguei descaradamente da Wikipedia, o que isso realmente significa? Isso significa efetivamente o uso de comandos HTTP embutidos, como GET, POST, PUT, DELETE e alguns outros mais raros, para comunicação entre cliente e servidor.
O que você está fazendo parece um aplicativo RESTFul. No entanto, há uma grande diferença entre serviços web RESTFul bem projetados e montados. Por exemplo, o código PHP na outra extremidade do GET pode executar uma mudança de estado, o que seria considerado errado, pois um GET é visto como uma operação somente leitura. Existem diferenças sutis entre como o POST (novo) e o PUT (substituir) também são usados.
O artigo da Wikipedia sobre isso é realmente muito bom, então vou parar por aqui.
fonte
Antes de prosseguir, esta pergunta relacionada pode ajudá-lo
A diferença entre REST e RESTful é simplesmente semântica. REST é um estilo de arquitetura aplicado a um relacionamento cliente-servidor. O RESTful é simplesmente uma maneira de informar aos clientes que você usa o REST.
Muitos aplicativos da Web afirmam ser RESTful, mas na verdade são apenas parcialmente conformes às restrições REST (como Martijn Verburg também referenciou em sua resposta). Vou apenas listá-las aqui, mas peço que você leia o artigo:
Como você menciona que trabalha no lado do cliente, pode ser útil ver o que uma arquitetura REST fornecerá e esperará de você como cliente conectado. Embora o REST não seja HTTP, ele é, de longe, o protocolo mais popular que suporta o que é REST, portanto, moldarei meu exemplo em torno disso.
Seu cliente deverá:
<link rel="pay" href="http://example.org/orders(1)/payment">
em HTML expressa uma transição de estado para criar um recurso de pagamento por meio de um POST com um corpo contendo algum XML que representa os detalhes de pagamento, como número do cartão de crédito , quantidade e assim por diante)Se ele fizer o que foi descrito acima, pode ser considerado um cliente REST, convém chamá-lo de "aplicativo RESTful", mas isso implicaria que você estivesse usando REST no lado do cliente, o que é incorreto para evitar o termo.
fonte
RESTful significa que a interface é um conjunto de objetos que podem ser lidos e atualizados (e possivelmente excluídos). Ou seja, não há consultas multiparâmetros (apenas o parâmetro é o objeto que você deseja ler) e existe apenas um tipo de operação que altera qualquer coisa no servidor, o upload do novo estado.
Essas limitações garantem que todas as solicitações sejam idempotentes (enviá-las várias vezes não tem nenhum efeito extra em enviá-las uma vez). Isso é importante, porque a rede pode falhar a qualquer momento e não entregar nenhuma solicitação ou resposta e, com solicitações idempotentes, você a envia novamente e não precisa realizar uma recuperação complicada.
fonte