fbpx

REST com Datasnap Detalhes na aplicação prática


Há alguns dias fui convidado a participar de uma ação bem bacana que era a criação de um APP para os pacientes de uma clínica médica. 

Como sempre deixei claro a ideia do blog e dos vídeos é compartilhar alguns aprendizados e experiências vividas por mim em projetos que tenha participado, então vamos compartilhar!

Situação atual

Cenário Atual da Clínica

Atualmente a clínica conta com um software de arquitetura cliente-servidor com banco de dados Firebird 2.5, que atende perfeitamente a gestão de pacientes, exames, etc.

Novo Projeto

Para a criação no projeto solicitado, optei por manter o software que hoje opera na clínica, e paralelamente a ele inseri um servidor Datasnap Rest, que seria exposto à internet proporcionando assim o acesso de diferentes dispositivos, inclusive nosso App Mobile requisitado pela clínica.

Novo Projeto Datasnap Rest - Clínica

Estudos sobre Rest

Um ótimo material que orientou meu estudo sobre REST foi o vídeo: Webinar Design de APIs RESTful, com duração de aproximadamente 1h, o conteúdo transmitido carrega detalhes interessantes e imprescindíveis a quem quer se aventurar no universo REST.

Aqui abro um enorme parêntese para agradecer aos amigos Kelver Merlotti, Cesar Romero e Marcelo Varela, que participaram comigo dessa discussão ampliando os questionamentos e mirando a solução adotada. Obrigado senhores!

Padrão REST

Não vou explicar aqui sobre REST, a minha ideia é chamar sua atenção para algo que pode gerar confusão.

Métodos Padrão Rest

Padrão Datasnap Rest

O Datasnap faz um mapeamento da URI da Classe e URI do Recurso de forma automática.

URI ou Identificador Uniforme de Recursos ou Uniform Resource Identifier (em inglês).

Mapeamento Padrão Datasnap REST

Fonte: http://docwiki.embarcadero.com/RADStudio/Seattle/en/DataSnap_REST

Analisando um pouco mais de afundo, percebemos que o Datasnap então trata os Métodos HTTP como:

Métodos Padrão Datasnap Rest

Rest Padrão X Rest Datasnap

Durante meus estudos sobre o padrão REST, pude notar que há uma diferença entre o REST padrão e o REST automaticamente mapeado pelo Datasnap.

Comportamento Métodos Rest com Datasnap Rest

Conclusão

Para implantar o padrão REST via Delphi Datasnap, de acordo com a documentação “universal” de Rest, você precisa inverter as instruções dentro dos métodos put e post, de forma que no Put você codifique a instrução de update e no Post você codifique a instrução de insert. Fazendo isso o mapeamento padrão do Datasnap como mencionei acima é invertido e passa a funcionar como descrito na imensa maioria dos documentos e fontes de estudo do padrão REST.

Para melhor explicar o que estou dizendo, veja o breve vídeo abaixo:

Você já tinha percebido esse detalhe?

Deixe aí seu cometário e até a próxima!

,

Comente