Árvore de páginas

Versões comparadas

Chave

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

...

Mapeamento da RowErrors (include method/dbotterr.i):

CampoJsonDescrição
ErrorNumbercodeCódigo da mensagem
ErrorDescriptionmessageDescrição da mensagem
ErrorSubTypetypeTipo de mensagem
ErrorHelpdetailedMessageHelp da mensagem



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".

CREATE RowErrors.
ASSIGN RowErrors.ErrorNumber      = 2
       RowErrors.ErrorDescription = "Descrição do Erro2"
       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":"",
		"details":[{
			"code":"2",
			"message":"Descrição do Erro2",
			"type":"error",
			"detailedMessage":""
		}]
	}
}
*/
Informações
titleNota

A tag "details" somente aparecerá no JSON quando houver mais de uma mensagem do mesmo tipo, exemplo: duas mensagens de "error" ou duas mensagens de "warning".