...
- ok (JsonObject com e sem status).;
- ok (JsonArray com indicador de existência de próximo registro).;
- asError (Interface Progress.Lang.Error Progress com e sem status);
- asError (Tabela Temporária temporária RowErrors);
- asError (JsonArray com status);
- asWarning (JsonObject com a tabela temporária RowErrors);
- asWarning (JsonObject com o status e a tabela temporária RowErrors);
- asWarning (JsonArray com indicador de existência de próximo registro e a tabela temporária RowErrors);
Métodos
Nome | Descrição |
---|
ok | Cria um retorno positivo com o payload e com o código do status HTTP 200 (é possível informar um status). |
asError | Cria um retorno de erro com uma lista erros da RowErrors e com o código do status HTTP 500 (é possível informar um status). |
asWarning | Cria um retorno positivo com uma lista warnings da RowErrors e com o código do status HTTP 200 (é possível informar um status). |
empty | Cria um retorno vazio e com o código do status HTTP 200 (é possível informar um status). |
Exemplos
Bloco de código |
---|
title | JsonAPIResponseBuilder:ok() |
---|
|
...
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
DEFINE VARIABLE oJsonObject AS JsonObject NO-UNDO.
ASSIGN oJsonObject = NEW JSONObject().
jsonOutput = JsonAPIResponseBuilder:ok(oJsonObject).
/* ou */
jsonOutput = JsonAPIResponseBuilder:ok(oJsonObject, 201). /* retorna status 201 */
/* ou */
jsonOutput = JsonAPIResponseBuilder:ok(oJsonObject, TRUE). /* existencia de próximo registro */
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato, podendo ter o status alterado:
{
"status":200,
"payload":{conteudo_do_oJsonObject}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:asError() - Interface Error |
---|
|
...
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
DEFINE VARIABLE oAppError AS Progress.Lang.AppError NO-UNDO.
ASSIGN oAppError = NEW Progress.Lang.AppError().
oAppError:AddMessage("Descrição do Erro", 1).
jsonOutput = JsonAPIResponseBuilder:asError(oAppError).
/* ou */
jsonOutput = JsonAPIResponseBuilder:asError(oAppError, 401). /* retorna status 401 */
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato, podendo ter o status alterado:
{
"status":500,
"payload":{
"code":1,
"message":"Descrição do Erro",
"type":"error",
"detailedMessage":"Progress.Lang.AppError"
}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:asError() - Tabela temporária RowErrors |
---|
|
...
{method/dbotterr.i}
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
CREATE RowErrors.
ASSIGN RowErrors.ErrorNumber = 1
RowErrors.ErrorDescription = "Descrição do Erro"
RowErrors.ErrorSubType = "ERROR".
jsonOutput = JsonAPIResponseBuilder:asError(TEMP-TABLE RowErrors:HANDLE).
...
/*
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":""
}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:asError() - JsonArray com status |
---|
|
...
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
ASSIGN oJsonArray = NEW JsonArray()
oJsonObject = NEW JsonObject().
oJsonObject:Add("ErrorNumber", 1).
oJsonObject:Add("ErrorDescription", "Descrição do erro").
oJsonObject:Add("ErrorSubType", "error").
oJsonArray:Add(oJsonObject).
jsonOutput = JsonAPIResponseBuilder:asError(oJsonArray, 403). /* retorna status 403 */
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato:
{
"status":403,
"payload":{
"code":"1",
"message":"Descrição do erro",
"type":"error",
"detailedMessage":""
}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:asWarning() - Tabela temporária RowErrors |
---|
|
...
{method/dbotterr.i}
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
DEFINE VARIABLE oResponseoJsonObject AS JsonAPIResponseJsonObject NO-UNDO.
ASSIGN oJsonObject = NEW JSONObject().
CREATE RowErrors.
ASSIGN RowErrors.ErrorNumber = 1
RowErrors.ErrorDescription = "Descrição do alerta"
RowErrors.ErrorSubType = "warning".
jsonOutput = JsonAPIResponseBuilder:asWarning(oJsonObject, TEMP-TABLE RowErrors:HANDLE).
/* ou */
jsonOutput = JsonAPIResponseBuilder:okasWarning(oJsonObject, 201, TEMP-TABLE RowErrors:HANDLE) |
Métodos
...
Nome
...
Descrição
. /* retorna status 201 */
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato, podendo ter o status alterado:
{
"status":200,
"payload":{
"_messages":{
"code":"1",
"message":"Descrição do alerta",
"type":"warning",
"detailedMessage":""
}
}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:asWarning() - JsonArray |
---|
|
...
{method/dbotterr.i}
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
DEFINE VARIABLE oJsonArray AS JsonArray NO-UNDO.
ASSIGN oJsonArray = NEW JsonArray().
CREATE RowErrors.
ASSIGN RowErrors.ErrorNumber = 1
RowErrors.ErrorDescription = "Descrição do alerta"
RowErrors.ErrorSubType = "warning".
jsonOutput = JsonAPIResponseBuilder:asWarning(oJsonArray, FALSE, TEMP-TABLE RowErrors:HANDLE).
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato:
{
"status":200,
"payload":{
"_messages":{
"code":"1",
"message":"Descrição do alerta",
"type":"warning",
"detailedMessage":""
},
"total":0,
"items":[],
"hasNext":false
}
}
*/ |
Bloco de código |
---|
title | JsonAPIResponseBuilder:empty() |
---|
|
...
DEFINE OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
jsonOutput = JsonAPIResponseBuilder:empty().
/* ou */
jsonOutput = JsonAPIResponseBuilder:empty(500). /* retorna status 500 */
...
/*
No exemplo acima será retornado um Json na variável "jsonOutput" no seguinte formato, podendo ter o status alterado:
{
"status":200,
"payload":{}
}
*/
|
Mapeamento da RowErrors (include method/dbotterr.i):
Campo | Json | Descrição |
---|
ErrorNumber | code | Código da mensagem |
ErrorDescription | message | Descrição da mensagem |
ErrorSubType | type | Tipo de mensagem |
ErrorHelp | detailedMessage | Help da mensagem |
Informações |
---|
|
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". |
Nota |
---|
|
O retorno dos objetos seguem o padrão conforme o "Guia de implementação de API V2.0" |
...
Cria um retorno de erro com uma lista erros da RowErrors e com o código do status HTTP informado.
...