bacen / pix-api

API Pix: a API do Arranjo de Pagamentos Instantâneos Brasileiro, Pix, criado pelo Banco Central do Brasil.
https://bacen.github.io/pix-api
2.31k stars 262 forks source link

Tratamento de Erros - Http Status diferentes #327

Open danillocesar opened 3 years ago

danillocesar commented 3 years ago

Bom dia povo,

Surgiu o seguinte problema e duvida aqui.

Caso seja identificado algum tipo de erro não mapeado na estrutura do Bacen, o PSP pode mapear esta mensagem de erro e escolher qual o http status será utilizado para ela?

Por exemplo, o PSP possui uma regra de négocio onde o tempo de expiração do calendario possui um limite máximo, nesse caso, quando passado um valor que exceda esse limite, o PSP retorna um http status "412" com uma mensagem especifica criada por ele, que não está na spec do bacen por não ter sido mapeada.

Isso é permitido nas regras implementação do PSP?

Se não for permitido, qual a saida o PSP tem para enviar uma mensagem especifica da regra de négocio dele? Utilizar o Status 400 com uma mensagem diferente?

ninrod commented 3 years ago

Caso seja identificado algum tipo de erro não mapeado na estrutura do Bacen, o PSP pode mapear esta mensagem de erro e escolher qual o http status será utilizado para ela?

Acredito que foi respondido na #326. Ressaltando que devem-se escolher HTTP Status Codes semanticamente aderentes e adequados para cada situação.

Por exemplo, o PSP possui uma regra de négocio onde o tempo de expiração do calendario possui um limite máximo, nesse caso, quando passado um valor que exceda esse limite, o PSP retorna um http status "412" com uma mensagem especifica criada por ele, que não está na spec do bacen por não ter sido mapeada.

É claro que é apenas um exemplo, mas eu questionaria, no exemplo, a legitimidade de o PSP recebedor estabelecer esta regra específica de "máximo", sendo que a API não estabelece o "máximo" para este caso (o máximo é o maior número que o int32 poderia abrigar).