Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.


DEFINE VARIABLE oJsonObject  AS JsonObject      NO-UNDO.
DEFINE VARIABLE oResponse    AS JsonAPIResponse NO-UNDO.

ASSIGN oJsonObject = NEW JSONObject().

oResponse = NEW JsonAPIResponse(oJsonObject).
oResponse:setHasNext(FALSE).
oResponse:setStatus(500).
oResponse:setRowErrors(JsonAPIUtils:convertTempTableToJsonObject(TEMP-TABLE RowErrors:HANDLE):getJsonArray("RowErrors")).

jsonOutput = oResponse:createJsonResponse().

...

Nome

Descrição

setStatusSeta o Status HTTP do retorno da requisição (200, 404, 500, etc).
setHasNextSeta o indicador da existências de mais registros para paginação.
setRowErrors

Seta um objeto JsonArray com a representação da tabela de erros (RowErrors). Para a conversão da tabela de erros em objeto JsonArray utilize o seguinte exemplo:

Bloco de código
languagejs
oJsonObject = JsonAPIUtils:convertTempTableToJsonObject(TEMP-TABLE RowErrors:HANDLE)
oResponse:setRowErrors(oJsonObject:getJsonArray("RowErrors")).
setAppError

Seta um objeto de erro do tipo Progress.Lang.AppError

setError

Seta um objeto de erro do tipo Progress.Lang.Error

Bloco de código
languagejs
DO:
   ASSIGN cTest = ENTRY(3,cTest).  
END.
CATCH err AS Progress.Lang.Error :
   oResponse:setError(err).
   oResponse:setStatus(500).
END CATCH.
FINALLY:
   jsonOutput = oResponse:createJsonResponse().
END FINALLY.
createJsonResponseCria o objeto JsonObject estruturado para ser retornado pela API Progress.
Bloco de código
titleExemplo de uso da JsonAPIResponse
...

{method/dbotterr.i}
 
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.

DEFINE VARIABLE oJsonObject AS JsonObject      NO-UNDO. 
DEFINE VARIABLE oResponse   AS JsonAPIResponse NO-UNDO. 

ASSIGN oJsonObject = NEW JSONObject()
       oResponse   = NEW JsonAPIResponse(oJsonObject). 

CREATE RowErrors.
ASSIGN RowErrors.ErrorNumber      = 1
       RowErrors.ErrorDescription = "Descrição do Erro"
       RowErrors.ErrorSubType     = "ERROR".

oResponse:setHasNext(FALSE). 
oResponse:setStatus(500). 
oResponse:setRowErrors(JsonAPIUtils:convertTempTableToJsonObject(TEMP-TABLE RowErrors:HANDLE):getJsonArray("RowErrors")).

jsonOutput = oResponse:createJsonResponse().

...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato:
{
    "status":500,
    "payload":{
        "code":"1",
        "message":"Descrição do Erro",
        "type":"error",
        "detailedMessage":""
    }
}
*/