Esta annotation deve ser utilizada quando for necessário desenvolver uma aplicação que responderá pelo método/verbo PATCH. Este método/verbo aplica modificações parciais a um recurso.
Exemplo utilizando função e recebendo parâmetro via path param
/* ------------------------------------------- */
@Patch("examples/function/patch/path/user/:user")
User Function examplesFunctionPatchPath()
Local cJson := ""
Local jPath
Local cBody := ""
jPath := JsonObject():New()
jPath := oRest:getPathParamsRequest()
cBody := oRest:getBodyRequest()
If (jPath <> Nil)
cJson := '[ { "description": "examplesFunctionPatchPath 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
/* ------------------------------------------- */
@Patch("examples/function/patch/query/user")
User Function examplesFunctionPatchQuery()
Local cJson := ""
Local cBody := ""
Local jQuery
jQuery := JsonObject():New()
jQuery := oRest:getQueryRequest()
cBody := oRest:getBodyRequest()
If (jQuery <> Nil)
cJson := '[ {"description": "examplesFunctionPatchQuery 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 classPatchExamples
Public Method New()
@Patch("examples/class/patch/path/user/:user")
Public Method methodExamplePatchPath()
@Patch("examples/class/patch/query/user")
Public Method methodExamplePatchQuery()
EndClass
Method New() class classPatchExamples
Return self
/* ------------------------------------------- */
Method methodExamplesPatchPath() class classPatchExamples
Local cJson := ""
Local cBody := ""
Local jPath
jPath := JsonObject():New()
jPath := oRest:getPathParamsRequest()
cBody := oRest:getBodyRequest()
If (jPath <> Nil)
cJson := '[ {"description": "examplesMethodPatchPath successfully executed, parameter received: ' + jPath['user'] + '" , "body received":"'+ cBody + '"} ]'
Endif
Return oRest:setResponse(cJson)
/* ------------------------------------------- */
Method methodExamplesPatchQuery() class classPatchExamples
Local cJson := ""
Local cBody := ""
Local jQuery
jQuery := JsonObject():New()
jQuery := oRest:getQueryRequest()
cBody := oRest:getBodyRequest()
If (jQuery <> Nil)
cJson := '[ {"description": "examplesMethodPatchQuery 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