Amigos, boa noite!
Depois de muita tentativa eu acho que consegui. Só não sei se estou cumprindo as boas práticas. Segue abaixo o exemplo da URL que estou fazendo:
http://localhost:1301/rest/orderservice/list/01/000000/products?cTipo=PA
No exemplo acima estou fazendo passando os seguintes parâmetros:
- Filial
- usuário
- filtro de produtos que são PA
Abaixo envio o exemplo do código que estou montando:
#include 'protheus.ch'
#include 'parmtype.ch'
#Include "RESTFUL.CH"
#Include "FWMVCDEF.CH"
User Function P3MANUT
Return
WSRestFul ORDERSERVICE Description "Consulta teste"
WsData cTipo as STRING
WsData cStatus as STRING
WsData cPriori as STRING
WSMethod GET Description "Consulta teste"
End WSRestFul
WSMethod GET QUERYPARAM cTipo,cStatus,cPriori WsService ORDERSERVICE
Local aFiltros := Self:aQueryString
Local aParam := Self:aURLParms
Local aEmpresas := FWAllFilial()
Local lOk := .F.
Local i
IF Len(aParam) > 0
IF aParam[1] == "list"
If ValType(aParam[2]) <> "U"
//Verifica se a empresa enviada existe no Protheus
For i := 1 to Len(aEmpresas)
IF aParam[2] == aEmpresas[i]
lOk := .T.
Exit
Endif
Next
If lOk .and. ValType(aParam[3]) <> "U"
PsWOrder(1)
If PswSeek(aParam[3])
::SetResponse('["OK"]')
Else
::SetResponse('["Usuario invalido"]')
EndIf
Else
::SetResponse('["Usuario nao informado ou empresa invalida"]')
Endif
Endif
Else
::SetResponse('["parâmetro list nao informado"]')
Endif
Else
::SetResponse('["Informar parâmetros"]')
Endif
Return .T.
Minha dúvida: Estou no caminho certo?
Documentações que estou seguindo: