Validador de payload da API de Métricas do Open Banking Brasil (API Admin)
50K+
A convenção do Open Banking especificou para a implementação a API Admin que traz informações sobre disponibilidade das demais APIs do ecossistema Open Banking na instituição participante. Este validador verifica se o payload enviado para esta aplicação é um payload válido com a documentação especificada para esta API, garantindo assim que as instituições participantes possam validar a resposta de suas APIs.
$ docker pull openbankingbrasil/metrics-validator:latest
$ docker run -dp 3005:3005 openbankingbrasil/metrics-validator
Payload de entrada descrito em https://openbanking-brasil.github.io/areadesenvolvedor/#obtem-as-metricas-de-disponibilidade-das-apis
O payload de entrada será validado, propriedade por propriedade, verificando se estão em conformidade com a documentação. Deve-se incluir a resposta da API de Métricas (API Admin) dentro do atributo "resource".
Exemplo de payload:
{
"data": {
"requestTime": "teste",
"errors": {
"currentDay": 10,
"previousDays": [
270,
298,
303,
244,
274,
249,
253
]
},
"peakTps": {
"currentDay": 10,
"previousDays": [
2,
2,
2,
2,
2,
2,
2
]
},
"averageTps": {
"currentDay": 10,
"previousDays": [
1,
1,
1,
1,
1,
1,
1
]
},
"rejections": {
"currentDay": 10,
"previousDays": [
137,
149,
115,
125,
152,
141,
148
]
},
"availability": {
"uptime": {
"generalUptimeRate": "0.99",
"endpoints": [
{
"url": "https://api.demo.obconnect.io/br/open-banking/products-services/v1",
"uptimeRate": "0.99"
},
{
"url": "https://api.demo.obconnect.io/br/open-banking/discovery/v1",
"uptimeRate": "0.99"
},
{
"url": "https://api.demo.obconnect.io/br/open-banking/channels/v1",
"uptimeRate": "0.99"
}
]
},
"downtime": {
"generalDowntime": 153,
"scheduledOutage": 0,
"endpoints": [
{
"url": "https://api.demo.obconnect.io/br/open-banking/products-services/v1",
"partialDowntime": 67
},
{
"url": "https://api.demo.obconnect.io/br/open-banking/discovery/v1",
"partialDowntime": 7
},
{
"url": "https://api.demo.obconnect.io/br/open-banking/channels/v1",
"partialDowntime": 79
}
]
}
},
"invocations": {
"unauthenticated": {
"currentDay": 384,
"previousDays": [
453,
416,
415,
375,
433,
452,
407
]
},
"unattended": {
"currentDay": 84,
"previousDays": [
78,
71,
81,
56,
81,
72,
79
]
},
"highPriority": {
"currentDay": 205,
"previousDays": [
208,
221,
195,
180,
210,
189,
216
]
},
"mediumPriority": {
"currentDay": 713,
"previousDays": [
635,
762,
670,
655,
722,
637,
662
]
}
},
"averageResponse": {
"unauthenticated": {
"currentDay": 1027,
"previousDays": [
1024,
1004,
970,
1012,
995,
1021,
981
]
},
"unattended": {
"currentDay": 919,
"previousDays": [
972,
1103,
1018,
941,
985,
911,
1016
]
},
"highPriority": {
"currentDay": 1053,
"previousDays": [
1012,
963,
981,
1029,
1019,
974,
1001
]
},
"mediumPriority": {
"currentDay": 985,
"previousDays": [
983,
1011,
1029,
1013,
999,
1004,
994
]
}
}
}
}
Em caso do json não apresentar problema o retorno será:
{
"data": [],
"status": 200
}
Em caso de problemas no json, será apresentado um array com os erros encontrados, por exemplo:
{
"data": [
"instance.resource.data.invocations.unattended.previousDays does not meet minimum length of 7",
"instance.resource.data.invocations.mediumPriority.currentDay is not of a type(s) integer",
"instance.resource.data.averageResponse.unattended.previousDays[4] is not of a type(s) integer"
],
"status": 200
}
No caso instance.resource.data.invocations.unattended.previousDays does not meet minimum length of 7, pela documentação, o array de "previousDays" deve ter pelo menos 7 posições.
No caso instance.resource.data.invocations.mediumPriority.currentDay is not of a type(s) integer, a propriedade "currentDay" deve ser um inteiro.
E no terceiro exemplo instance.resource.data.averageResponse.unattended.previousDays[4] is not of a type(s) integer, a posição 4 do array de "previousDay" deve ser um inteiro.
Content type
Image
Digest
Size
336.9 MB
Last updated
over 5 years ago
docker pull openbankingbrasil/metrics-validator