Hoje vamos falar um pouco sobre o serviço de API REST, como ele funciona e como configura-lo em seu serviço TOTVS Appserver.
O que é uma API?
A sigla API significa Application Programming Interface (Interface de Programação de Aplicativos). É um conjunto de regras e protocolos que permite que diferentes softwares se comuniquem entre si.
Existem hoje vários tipos de API como:
SOAP
gRPC
GraphQL
WebSockets
Mas hoje vamos nos aprofundar API do tipo REST (Representational State Transfer), nada mais nada menos, do que um conjunto de restrições de uma arquitetura, ou seja, define como os sistemas devem se comunicar e interagir entre si.
Imagem ilustrativa
REST TLPP
Hoje o serviço Appserver trabalha tanto com o tipo REST, tanto com o REST TLPP. A principal diferença entre eles está na forma como as requisições e respostas são estruturadas e processadas, além da performance que no REST TLPP é maior. O grande ponto entre eles de diferença é o desenvolvimento, onde no REST usa via WSRestFul e no REST TLPP usa-se o Annotation, abaixo temos exemplos de uso para os dois tipos:
REST:
Acima temos um código que utiliza WSRESTFUL para realizar alguma instrução que você irá passar.
REST TLPP:
Acima temos a utilização do Annotation para o REST TLPP, usando classes e métodos ou podendo utilizar user fuctions.
Como configurar?
Agora chegou a hora de subir o serviço REST no Appserver, é bem simples tanto o REST quanto o REST TLPP, os dois são feitos na configuração do arquivo .ini do seu serviço.
Imagem ilustrativa
REST
No seu arquivo .ini vamos colocar as seguintes configurações:
[GENERAL]
MAXSTRINGSIZE=10
[HTTPV11]
Enable=1
Sockets=HTTPREST
[HTTPREST]
Port=8080
URIs=HTTPURI
SECURITY=1
[HTTPURI]
URL=/rest
PrepareIn=All
Instances=1,2
[ONSTART]
jobs=HTTPJOB
RefreshRate=30
[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=environment
Após iniciar o serviço você poderá acessar uma pagina que mostra a lista de classes WSRESTFUL compiladas no RPO do ambiente configurado e os detalhes de cada classe, usando a URL:
http://{IP do servidor}:(port}/{path}
http://localhost:8080/rest (exemplo)
REST TLPP
Também no seu arquivo .ini vamos colocar as seguintes configurações:
[HTTPSERVER]
Enable=1
Servers=HTTP_REST
[HTTP_REST]
hostname=localhost
port=8080
locations=HTTP_ROOT
[HTTP_ROOT]
Path=/
RootPath=root/web
;DefaultPage=index.html
ThreadPool=THREAD_POOL
[THREAD_POOL]
Environment=environment
MinThreads=1
Conclusão
Em conclusão, ressaltamos que as APIs desempenham um papel fundamental na integração de sistemas, permitindo a comunicação e o compartilhamento de dados entre diferentes aplicativos e plataformas. As APIs REST quanto a REST TLPP são ferramentas poderosas no contexto de desenvolvimento, trazendo facilidade e produtividade.
Dúvidas
Deixe sua dúvida ou sugestão na área de comentário, teremos prazer em ajudar.
Referências
(1) Ambiente de compilação do TLPP - https://tdn.totvs.com/pages/viewpage.action?pageId=555860439
(2) Configuração básica REST - https://centraldeatendimento.totvs.com/hc/pt-br/articles/360045401793-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Configuração-básica-REST-do-protheus
(3) Entendendo as Novidades do REST -https://tdn.totvs.com/display/public/framework/Entendendo+as+novidades+do+REST
(4) REST TLPPCORE - https://tdn.totvs.com/display/tec/REST
(5) Arquitetura do REST - https://www.totvs.com/blog/developers/rest/
Muito top !
Excelente artigo @Eduardo Deorce