Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Common): ORB-2867 - PC118 - Status code #1791

Merged
merged 2 commits into from
Jul 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dictionary/getStatus_v2.csv
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo
/data;data;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;;
/data/status;status;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;;
/data/status;status;;Lista;;Obrigatório;;;1;1;"";Não permitido;array;;
/data/status/code;code;"Condição atual da API:
* `OK` - A implementação é totalmente funcional
* `PARTIAL_FAILURE` - Um ou mais endpoints estão indisponíveis
Expand All @@ -14,4 +14,4 @@ SCHEDULED_OUTAGE";1;1;"";Não permitido;string;OK;
/data/status/detectionTime;detectionTime;A data e hora em que a interrupção atual foi detectada. Será obrigatoriamente preenchido se a propriedade code for PARTIAL_FAILURE ou UNAVAILABLE;Texto;20;Opcional;;;0;1;"";Não permitido;string;2020-07-21T08:30:00Z;
/data/status/expectedResolutionTime;expectedResolutionTime;A data e hora em que o serviço completo deve continuar (se conhecido). Será obrigatoriamente preenchido se code tiver algum valor que não seja OK;Texto;20;Opcional;;;0;1;"";Não permitido;string;2020-07-21T08:30:00Z;
/data/status/updateTime;updateTime;A data e hora em que esse status foi atualizado pela última vez pelo titular dos dados.;Texto;20;Opcional;;;0;1;"";Não permitido;string;2020-01-02T01:00:00Z;
/data/status/unavailableEndpoints;unavailableEndpoints;Endpoints com indisponibilidade;Lista;2000;Opcional;;;0;N;"";Não permitido;array;;
/data/status/unavailableEndpoints;unavailableEndpoints;Endpoints com indisponibilidade;Lista;2000;Opcional;;;0;1;"";Não permitido;array;;
182 changes: 182 additions & 0 deletions swagger-apis/common/2.0.0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,22 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ResponseDiscoveryStatusList'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'504':
$ref: '#/components/responses/GatewayTimeout'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
$ref: '#/components/responses/Default'
/outages:
get:
tags:
Expand All @@ -44,6 +60,22 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ResponseDiscoveryOutageList'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'504':
$ref: '#/components/responses/GatewayTimeout'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
$ref: '#/components/responses/Default'
components:
schemas:
ResponseDiscoveryStatusList:
Expand All @@ -60,6 +92,7 @@ components:
properties:
status:
type: array
maxItems: 1000
items:
$ref: '#/components/schemas/Status'
links:
Expand All @@ -75,6 +108,7 @@ components:
properties:
data:
type: array
maxItems: 1000
items:
required:
- outageTime
Expand Down Expand Up @@ -184,11 +218,110 @@ components:
unavailableEndpoints:
type: array
description: Endpoints com indisponibilidade
maxItems: 1000
items:
type: string
maxLength: 2000
example:
- 'https://api.banco.com.br/open-banking/channels/v1/electronic-channels'
ResponseErrorMetaSingle:
type: object
required:
- errors
properties:
errors:
type: array
minItems: 1
maxItems: 13
items:
type: object
required:
- code
- title
- detail
properties:
code:
description: Código de erro específico do endpoint
type: string
pattern: '[\w\W\s]*'
maxLength: 255
title:
description: Título legível por humanos deste erro específico
type: string
pattern: '[\w\W\s]*'
maxLength: 255
detail:
description: Descrição legível por humanos deste erro específico
type: string
pattern: '[\w\W\s]*'
maxLength: 2048
meta:
type: object
description: Meta informações referente à API requisitada.
required:
- requestDateTime
properties:
requestDateTime:
description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.'
type: string
maxLength: 20
format: date-time
example: '2021-05-21T08:30:00Z'
ResponseError:
type: object
required:
- errors
properties:
errors:
type: array
minItems: 1
maxItems: 13
items:
type: object
required:
- code
- title
- detail
properties:
code:
description: Código de erro específico do endpoint
type: string
pattern: '[\w\W\s]*'
maxLength: 255
title:
description: Título legível por humanos deste erro específico
type: string
pattern: '[\w\W\s]*'
maxLength: 255
detail:
description: Descrição legível por humanos deste erro específico
type: string
pattern: '[\w\W\s]*'
maxLength: 2048
meta:
type: object
description: Meta informações referente à API requisitada.
required:
- totalRecords
- totalPages
- requestDateTime
properties:
totalRecords:
type: integer
format: int32
description: Número total de registros no resultado
example: 1
totalPages:
type: integer
format: int32
description: Número total de páginas no resultado
example: 1
requestDateTime:
description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.'
type: string
maxLength: 20
format: date-time
example: '2021-05-21T08:30:00Z'
parameters:
page:
name: page
Expand All @@ -210,3 +343,52 @@ components:
minimum: 1
maximum: 1000
format: int32
responses:
BadRequest:
description: A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.​
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
NotFound:
description: O recurso solicitado não existe ou não foi implementado.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
MethodNotAllowed:
description: O consumidor tentou acessar o recurso com um método não suportado.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
TooManyRequests:
description: A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
InternalServerError:
description: Ocorreu um erro no gateway da API ou no microsserviço.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
GatewayTimeout:
description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
SiteIsOverloaded:
description: O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorMetaSingle'
Default:
description: '\-'
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
Loading