A Query String é um modelo clássico de manutenção do estado da página e são conjuntos de pares/valores anexados a URL.
Seu uso é simples, após a URL de determinada página, adicionamos o primeiro valor usando a seguinte sintaxe: ?Chave=Valor.
Para passarmos mais de um conjunto, os mesmos devem ser concatenados usando o caractere coringa &.
Do lado da execução do serviço, resgatamos seus valores da seguinte forma:
@Get("sample/request/querystringexample")
user function sampleQueryString()
local cReturn := ""
local jQueryString := Nil
jQueryString := oRest:getQueryRequest()
if ( jQueryString <> Nil )
cReturn := "Parâmetros capturados: [" + jQueryString:ToJSon() + "]"
endif
oRest:setResponse(cReturn)
return
Note que fazemos uso do método oRest:getQueryRequest()
para obter todos os parâmetros enviados via Query String.
jQueryString := oRest:getQueryRequest()
cCode := jQueryString[ 'code' ]
Para o exemplo acima funcionar, a chamada deveria ser assim:
http://localhost:8080/sample/request/querystringexample?code=1
ou
http://localhost:8080/sample/request/querystringexample?name=Zack&code=1
Atenção:
Os objetos JSON retornados por métodos de oRest, como por exemplo oRest:getQueryRequest(), são referências ao objeto existente no REST e não uma cópia.
Existem alguns motivos para ser uma referência, são eles:
- Melhorar performance do serviço;
- Economia de memória;
- Evitar que seja necessário limpar o objeto na saída da implementação do serviço REST.
Portanto, é imprescindível que não se manipule diretamente o Objeto, pois isso irá refletir nas próximas requisições, causando problemas difíceis de serem detectados.
Métodos:
oRest:getPathParamsRequest() oRest:getQueryRequest() oRest:getHeaderRequest() oRest:getThreadPoolTlppData() oRest:getServerTlppData() oRest:getThreadPoolUserData() oRest:getThreadPoolServerUserData() oRest:getHeaderResponse()