Esta annotation deve ser utilizada quando for necessário desenvolver uma aplicação que responderá pelo método/verbo POST. Este método/verbo é utilizado para submeter uma entidade a um recurso específico frequentemente causando uma mudança no estado do recurso.

Abaixo veremos exemplos de sua utilização:


Exemplo utilizando função e recebendo parâmetro via path param

#include "tlpp-core.th"
#include "tlpp-rest.th"

/* ----------------------------------------- */
@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

#include "tlpp-core.th"
#include "tlpp-rest.th"

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

#include "tlpp-core.th"
#include "tlpp-rest.th"

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)