Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Próxima »


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:


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

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