DEV Community

Josimar Junior
Josimar Junior

Posted on • Edited on

Um microblog usando Protheus - Rest Server, parte 1, o que será esta série

Introdução

Existem alguns conteúdos sobre o uso e criação de apis Rest usando o Protheus e a linguagem ADVPL, contudo pouco vai além da montagem básica dos métodos e operações padrões. Então, esta série tem o objetivo de fazer um microblog (aplicação tipo Twitter) usando o servidor Rest do Protheus com Advpl.
Para criar a api usando Advpl será necessário discutir e explicar alguns conceitos de como o Rest funciona e eventuais particularidades quando comparado com as linguagens e frameworks de mercado.
Alguns conteúdos com a documentação ou artigos com exemplos de uso são:
link 1: Web Services REST/Server
link 2: Exemplo simples
link 3: Exemplo mais complexo

O Rest no Protheus

A sequência de artigos e documentação no link 1 acima aborda de forma bem abrangente o "como funciona" e portanto para mais detalhes sugiro a leitura daquela documentação com atenção.
O Rest com Advpl no Protheus foi construído para suportar os seguintes métodos de REST sobre HTTP GET, POST, PUT, DELETE e OPTIONS.
A construção dos serviços segue um pouco do modelo das classes de serviços para Web Services SOAP e portanto, em Advpl são construídas classes WSRESTFUL e com isso alguns métodos dessas classes irão responder pelos métodos HTTP conforme a URI definida. Estes elementos serão detalhados quando os serviços começarem a ser construídos.
A execução do Rest Server acontece em duas etapas: a recepção das requisições e validação de requisições e depois o processamento e resposta. Essa divisão é importante especialmente para entender o que pode ser melhorado com relação a tempo de resposta dos serviços. É possível observar estas etapas quando é ligado o log FWTRACELOG=1 na seção do ambiente configurado para o Rest Server.
Estes são os elementos importantes no momento, caso tenha criado curiosidade sobre algum dos temas mencionados sugiro procurar ou praticar o que é mencionado nas publicações.
Importante: será utilizado Advpl em boa parte dos exemplos e não TLPP, TLPP precisará da sua própria jornada e aplicação de exemplo. Sobre a diferença de Rest com Advpl e TLPP esta documentação é um excelente ponto de partida Rest Advpl x Rest 2.0.

O projeto do microblog

Uma das maneiras para aprender e exercitar situações complexas no desenvolvimento é com a escolha de soluções para serem desenvolvidas. No passado para entender e aprender como criar, desenvolver e principalmente entender os conceitos de desenvolvimento web utilizei Ruby on Rails e segui o Rails Tutorial.
A aplicação desenvolvida é um clone do Twitter e com isso vários conceitos puderam ser abordados com relação ao construção da aplicação (CRUD simples, operações complexas, atualizações parciais e validações complexas, renderização de componentes, etc). Então utilizando como exemplo a aplicação do Rails Tutorial pensei em fazer o mesmo para apresentar a construção de uma Api Rest usando o Protheus.

O que terá no projeto?

O projeto irá conter duas entidades: Perfis e Publicações.
Estas duas entidades depois irão se relacionar e as funcionalidades disponibilizadas ao final serão:
login;
criação, atualização e inativação de perfil;
seguir perfil;
visualizar lista de seguidores e perfis seguidos;
criação de publicação;
associação de comentários;
filtro e ordenação de publicações;

A construção destes serviços envolverá passar pelo jeito tradicional (e que PRECISA mudar) de escrever programas Advpl para uma forma que permita isolar o negócio e eventualmente permitir evoluções de tecnologia que não envolva mexer na regra de de negócio.

Como acompanhar

O projeto no Github https://github.com/josimar-jr/microblog-protheus terá os códigos baseados em branches que serão mantidas conforme o projeto for evoluindo para permitir a comparação com versões anteriores dos programas.
Este projeto terá também alguns dos recursos base para conseguir replicar o ambiente utilizado e cada pessoa conseguir testar em ambiente de desenvolvimento.
Parte do desenvolvimento será apoiado com testes usando o Postman e por isso não será usado nenhum recurso de teste automatizado próprio para Protheus ou Advpl.

Até a próxima página dessa jornada.

Top comments (0)