Árvore de páginas

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:


#include "tlpp-core"
#include "tlpp-rest"

@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.

Esse método já nos retorna em formato JSON, portanto, para acessar o dado de um determinado parâmetro, basta seguir como abaixo:


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()

  • Sem rótulos