Esta annotation deve ser utilizada quando for necessário desenvolver uma aplicação que responderá pelo método/verbo POST. Este método/verbo
Abaixo veremos exemplos de sua utilização:
Exemplo utilizando função e recebendo parâmetro via path param
/* ----------------------------------------- */
@Post("examples/function/post/path/user/:user")
User Function examplesFunctionPostPath()
Local cJson := ""
Local jPath
Local cBody := ""
jPath := JsonObject():New()
jPath := oRest:getPathParamsRequest()
cBody := oRest:getBodyRequest()
If (jPath <> Nil)
cJson := '[ { "description": "examplesFunctionPostPath successfully executed, parameter received: ' + jPath['user'] + '" , "body received":"'+ cBody + '"} ]'
Endif
Return oRest:setResponse(cJson)
Exemplo utilizando função e recebendo parâmetro via query string
/* ----------------------------------------- */
@Post("examples/function/post/query/user")
User Function examplesFunctionPostQuery()
Local cJson := ""
Local cBody := ""
Local jQuery
jQuery := JsonObject():New()
jQuery := oRest:getQueryRequest()
cBody := oRest:getBodyRequest()
If (jQuery <> Nil)
cJson := '[ {"description": "examplesFunctionPostQuery successfully executed, parameter received: ' + jQuery['user'] + '" , "body received":"'+ cBody + '"} ]'
Endif
Return oRest:setResponse(cJson)
Exemplo utilizando classe com métodos recebendo parâmetro via path param e query string.
Class classPostExamples
Public Method New()
@Post("examples/class/post/path/user/:user")
Public Method methodExamplePostPath()
@Post("examples/class/post/query/user")
Public Method methodExamplePosthQuery()
EndClass
Method New() class classPostExamples
Return self
/* ----------------------------------------- */
Method methodExamplesPostPath() class classPostExamples
Local cJson := ""
Local cBody := ""
Local jPath
jPath := JsonObject():New()
jPath := oRest:getPathParamsRequest()
cBody := oRest:getBodyRequest()
If (jPath <> Nil)
cJson := '[ {"description": "examplesMethodPostPath successfully executed, parameter received: ' + jPath['user'] + '" , "body received":"'+ cBody + '"} ]'
Endif
Return oRest:setResponse(cJson)
/* ----------------------------------------- */
Method methodExamplesPostQuery() class classPostExamples
Local cJson := ""
Local cBody := ""
Local jQuery
jQuery := JsonObject():New()
jQuery := oRest:getQueryRequest()
cBody := oRest:getBodyRequest()
If (jQuery <> Nil)
cJson := '[ {"description": "examplesMethodPostQuery successfully executed, parameter received: ' + jQuery['user'] + '" , "body received":"'+ cBody + '"} ]'
Endif
Return oRest:setResponse(cJson)
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()
Visão Geral
Import HTML Content
Conteúdo das Ferramentas