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

Padronização de Erros #23

Open
pportella23 opened this issue Nov 26, 2024 · 0 comments
Open

Padronização de Erros #23

pportella23 opened this issue Nov 26, 2024 · 0 comments

Comments

@pportella23
Copy link
Owner

pportella23 commented Nov 26, 2024

Contexto

Consultas com sucesso (exemplo Status Code 200 ou 201) não possuem um padrão exato no seu retorno, pois hora um endpoint pode retornar um único objeto, hora pode retornar um array e dependerá da intenção de cada endpoint decidir o que melhor retornar.

Apesar disto, retornos com erro podem e devem ter um padrão, pois isto é fundamental para que eles sejam corretamente disponibilizados em uma interface para o usuário ou para que outro script programaticamente saiba o que fazer ou como se comportar.

Fora isto, é importante existir um padrão de erros para que eu, como desenvolvedor, consiga lançar exceções no sistema e tendo a garantia de que ele se comporte de forma previsível. E apesar do JavaScript já fornecer tipos de erros embutidos na linguagem, como SyntaxError para indicar erros de sintaxe e em como o código foi escrito, ou ReferenceError quando o código tenta acessar uma variável que não foi definida, a nossa aplicação precisa de erros customizados que deixem claro situações específicas como erro ao se conectar em algum serviço externo como o Banco de Dados ou erro de validação de algum campo.

Execução

Criar erros customizados no JavaScript começando por um erro base onde todos os outros erros irão herdar seus campos e comportamentos. Para mais informações sobre como criar erros customizados, assistir esta apresentação: https://www.youtube.com/watch?v=ZgWyha2d6iY

Fora isso, a interface pública em uma resposta de erro da API deve seguir inicialmente este padrão:

{
  "name": "NomeDoErro",
  "message": "Mensagem explicando o que aconteceu",
  "action": "Mensagem recomendando fazer alguma ação",
  "status_code": 500
}

Lembre-se: é uma boa prática retornar o nome da chave em snake_case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant