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

Comportamento Métodos Rest com Datasnap Rest

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!

Delphi Academy Segunda Temporada

Pinguim agora é Esptartano

Depois do sucesso da primeira temporada, vem aí a renovada segunda temporada do programa de atualização rápida Delphi Academy, não perca!

Fernando Rizzato, Consultor Líder da Embarcadero na América Latina, traz novidades e divulga a lista de conteúdo dos primeiros episódios da Segunda Temporada do Delphi Academy.

Na onda do Pinguim

Embora o projeto siga ainda em fase de testes, já deixou de ser segredo que a próxima versão de Delphi vai compilar para Linux (servidores), já nos primeiros episódios o tema será abordado, assim o público já terá um contato e preparação inicial para desbravar o novo ambiente.

Pinguim agora é Esptartano

 

Sucesso da primeira temporada, garantiu a segunda

O sucesso de público e crítica da primeira temporada é que garantiu a existência da segunda, os temas já sacodem os grupos especializados na internet e o público não vê a hora de começar!

Delphi Academy Segunda Temporada

Agenda divulgada

Abaixo a agenda já divulgada:

Fevereiro

  • 07/02 Preview: Novo Compilador Linux para Delphi e C++Builder
  • 21/02 Iniciando com DataSnap para Windows e Linux 64 bit

Março

  • 07/03 Iniciando com RADServer para Windows e Linux 64 bit
  • 21/03 Parallel Programming Library (PPL) com Delphi

Abril

  • 04/04 Novos Recursos para JSON no Delphi e C++Builder
  • 18/04 Servidores DataSnap REST

Maio

  • 02/05 DataSnap REST com FireDAC
  • 16/05 DataSnap REST Avançado
  • 30/05 Iniciando com Aplicações Mobile em Delphi e C++Builder

Junho

  • 13/06 Aplicações Mobile: Boas Práticas de UI
  • 27/06 Aplicações Mobile: Acesso a Dados

 

Inscreva-se já!

Reserve já sua inscrição clicando aqui: 

https://attendee.gotowebinar.com/rt/2328814386281502721?elqTrackId=3b8af975720b442991bc58bec60caeb7&elq=30bd702861cb4d96b2206052331c5b44&elqaid=19960&elqat=1&elqCampaignId=6647

Para maiores informações acesse este link: Delphi Academy Season 2.

Nos encontramos nos episódios!

Fonte: https://community.embarcadero.com/blogs/entry/delphi-academy-brasil-i-m-back