Histórico da Página
Quando falamos em serviços REST, podemos ter Path Virtuais que irão compor a URI do serviço, e ao final, também a URL na qual os clientes farão requisições ao serviço.
O Path Parameter utiliza a definição do endpoint para possibilitar o envio de informações. Esses parâmetros farão parte do endpoint, porém terão dados variáveis.
Do lado da execução do serviço, temos que nos ater não somente em como resgatar os valores, mas como também em como prover, segue:
@Get("sample/function/pathparamsexample/:code")
user function samplePathParamsExample()
local cReturn := ""
local jPathParams := Nil
jPathParams := oRest:getPathParamsRequest()
if jPathParams <> Nil
cReturn := "Parâmetros capturados: [" + jPathParams:ToJSon() + "]"
endif
oRest:SetResponse( cReturn )
return
Na definição do endpoint, já incluímos o parâmetro code
em sua definição, e para que o REST entenda de que se trata da uma variável, colocamos ":" antes do nome da variável.
Notem que na definição do endpoint inserimos a variável code
da seguinte maneira:
@Get("sample/function/pathparamsexample/:code")
Ao indicar ":" antes de code
, automaticamente estamos definindo que o valor passado nessa posição da URI será nosso parâmetro de nome code
e poderá ser variável, porém, para acessar esse serviço a requisição tem que respeitar o endpoint completo, tornando o parâmetro obrigatório.
Para obter todos os parâmetros enviados via Path Param, fazemos uso do método oRest:getPathParamsRequest()
.
Esse método já nos retorna em formato JSON, portanto, para acessar o dado de um determinado parâmetro, basta seguir como abaixo:
jPathParams := oRest:getPathParamsRequest()
cCode := jPathParams[ 'code' ]
Para o exemplo acima funcionar, a chamada deveria ser assim:
http://localhost:8080/sample/function/pathparamsexample/1