DEV Community

Josimar Junior
Josimar Junior

Posted on • Edited on

3

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.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post