Criei um serviço WSRESTFUL e apliquei no RPO utilizado para serviços REST. Ao consultar na lista de serviços disponíveis, o mesmo nao é apresentado.
Seguem as primeiras linhas do fonte
#include 'protheus.ch'
#include 'parmtype.ch'
#Include 'RestFul.ch'
#include 'TopConn.CH'
user Function WSITGCTE()
return
WSRESTFUL INTEGRACTE DESCRIPTION "Integrar CTEs"
WSMETHOD POST DESCRIPTION "Importacao de CTE" WSSYNTAX ""
WSMETHOD GET DESCRIPTION "Consulta CTE - Nao implementado." WSSYNTAX ""
END WSRESTFUL
WSMETHOD GET WSRECEIVE RECEIVE WSSERVICE INTEGRACTE
self:setContentType("text/html")
self:setResponse("<p>H</p>")
self:setStatus(200)
return .T.
WSMETHOD POST WSRECEIVE RECEIVE WSSERVICE INTEGRACTE
.
.
.
Return .T.
dadinel
Dezembro 10, 2020, 4:45pm
2
André, removendo os três pontos do POST (erro de compilação), compilei o fonte e foi exibido na listagem normalmente.
Bom dia André,
Terá que verificar se foi compilado sem erros e se foi compilado na porta e serve correto, pois uma vez compilado ele aparecerá, nunca tive problemas de mesmo compilado ele não esta na lista.
Bom dia Tiago! Cara, confirmo sim IP:PORTA e apontamento RPO. Quando eu pego o conteudo do fonte e insiro num serviço já existente, ele é adicionado com sucesso. Olhando o processo de compilação, ele apresenta SUCCESS e no inspetor de objetos, o fonte está compilado.
André,
Não é necessário declarar essa User FunctionCaso não vá receber nenhum header, remova o WSRECEIVE também. Caso receba, declare o WSDATA dela.
Fiz o teste da seguinte forma e funcionou tranquilamente:
#include 'protheus.ch'
#include 'parmtype.ch'
#Include 'RestFul.ch'
#include 'TopConn.CH'
WSRESTFUL INTEGRACTE DESCRIPTION "Integrar CTEs"
// WSMETHOD POST DESCRIPTION "Importacao de CTE" WSSYNTAX ""
WSMETHOD GET DESCRIPTION "Consulta CTE - Nao implementado." WSSYNTAX ""
END WSRESTFUL
WSMETHOD GET WSSERVICE INTEGRACTE
self:setContentType("text/html")
self:setResponse("<p>H</p>")
self:setStatus(200)
return .T.