Documentação API Rest Protheus
Primeiramente é necessário configurar todas as informações do
[Link]. Para teste foi criado appserver homologação API e o ambiente
API, acessado através de [Link]
De maneira geral o appserver do Protheus deve possuir as TAGS abaixo
para funcionar o REST API. Onde o Port é a porta da nossa rota e a URL é o
endereço pós porta.
Abaixo temos os includes necessários, também temos a User Function
wsSolCom() que reserva a chamada da execução da API. Logo abaixo temos
o chamado WSRESTFUL wsSolCom (é importante o nome que procede o
WSRESTFUL tem que ser igual ao nome da User Function.
A primeira “description” é a descrição da API em geral. No exemplo
acima a descrição da API é “Serviço REST para inclusão de Solicitação de
Compra”.
A segunda “description” é a descrição do método da API. No exemplo
acima a descrição do método, que é PUT, é “WS Inclusão de compras”. E
WSSYNTAX, que procede a descrição do método da API, é a sintaxe para
formar a rota de requisição do webservice em questão.
Para rota de teste passa enviar informações JSON para o link
[Link] através do método PUT. Pelo Insomnia
temos o seguinte exemplo teste, onde o array de envio é composto pelas
propriedades “Solicitante” e “Items”, onde a propriedade “items” é
representada por um array de “produto” e “quantidade”.
Abaixo temos as variáveis, algumas delas merecem destaque como o
cJson (Local cJson := Self:GetContent()), que é a variável que irá receber o
JSON da requisição. Além do que estamos definindo o recebimento como
JSON e fazemos tratativa para gerar o número de solicitação de compras, que
precisa ser exclusivamente único)
Continuando nosso código temos tratativa, para verificar se há
algum erro com Json. Caso tenha ele retorna status 500 com mensagem
‘Parser Json Error’. Também configurados o cabeçalho com informações como
“C1_NUM”, “C1_SOLICIT” e “C1_EMISSAO”, onde o primeiro é codificado para
ser gerado (observar imagem acima), o “C1_SOLICIT” que é recebido via
JSON e o “C1_EMISSAO” que pega a data do banco.
Mais a frente também é configurado os itens das linhas, onde
temos “C1_ITEM” que é a linha do item na solicitação, o “C1_PRODUTO” que
é o produto recebido pelo JSON, o “C1_QUANT” que é a quantidade do
produto recebida pelo JSON e o “C1_ORIGEM” que foi configurado para ser
‘WSHELLO’.
E logo depois de configurado o cabeçalho e os itens é executado
o MSExecAuto.
Após a execução do MSExecAuto é verificado se há algum erro,
retornando status 500 com mensagem ‘erro’.
Caso esteja tudo nos conformes teremos o retorno abaixo: