#INCLUDE "TOTVS.CH"
#INCLUDE "RESTFUL.CH"
WSRESTFUL sample DESCRIPTION "Exemplo de serviço REST"
WSDATA count AS INTEGER
WSDATA startIndex AS INTEGER
WSMETHOD GET DESCRIPTION "Exemplo de retorno de entidade(s)" WSSYNTAX "/sample || /sample/{id}"
END WSRESTFUL
WSMETHOD GET WSRECEIVE startIndex, count WSSERVICE sample
Local i
// define o tipo de retorno do método
::SetContentType("application/json")
// verifica se recebeu parametro pela URL
// exemplo: http://localhost:8080/sample/1
If Len(::aURLParms) > 0
// insira aqui o código para pesquisa do parametro recebido
// exemplo de retorno de um objeto JSON
::SetResponse('{"id":' + ::aURLParms[1] + ', "name":"sample"}')
Else
// as propriedades da classe receberão os valores enviados por querystring
// exemplo: http://localhost:8080/sample?startIndex=1&count=10
DEFAULT ::startIndex := 1, ::count := 5
// exemplo de retorno de uma lista de objetos JSON
::SetResponse('[')
For i := ::startIndex To ::count + 1
If i > ::startIndex
::SetResponse(',')
EndIf
::SetResponse('{"id":' + Str(i) + ', "name":"sample"}')
Next
::SetResponse(']')
EndIf
Return .T.
|