Introdução - O que é REST?

Transferência de Estado Representativo (Representational State Transfer) ou somente (REST) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado (PHD) sobre a web escrita por Roy Fielding, um dos principais autores da especificação do protocolo HTTP que é utilizado por sites da internet.

"A REST (Transferência do Estado Representativo) é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso." - Dr. Roy Fielding


O termo REST se referia, originalmente, a um conjunto de princípios de arquitetura, na atualidade se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML, JSON e HTTP, sem as abstrações e overheads adicionais dos protocolos baseados em padrões de trocas de mensagem como o protocolo SOAP.

Implementação TOTVS

A Arquitetura REST implementada no TOTVS | AppServer permite:

Um protocolo cliente/servidor com e sem estado. Quando trabalhamos 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. Quanto trabalha-se com estado, através de tecnicas de controle de Session é possível continuar na mesma conexão até o encerramento da conexão ou Timeout.

Utilizar os formatos JSON e XML porém recomenda-se o uso do JSON para economia de recursos do sistema, haja visto que as mensagens no formato JSON são menores que as de formato XML.

Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação. As operações disponíveis são: POST (Create), GET (Read),PUT (Update) e DELETE. Com frequência estas operações são combinadas com operações CRUD para a persistência de dados.

Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é unicamente direcionado através da sua URI, permitido a passagem de parametros para a execução do Web Services, como por exemplo:

GET /Users/2819c223
Host: example.com
Accept: application/json

ou

GET /Users?startIndex=1&count=10
Host: example.com
Accept: application/json

Sobre a utilização da TAG Accept: charset=UTF-8 no REST Advpl, consultar o link abaixo:

Entendendo as novidades do REST