#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.
  • Sem rótulos