Olá pessoal!
Ao criar uma API Rest qual é a melhor prática para retornar os erros de negócio no HTTP Status? Abaixo estão as opções que vi em alguns sites, não sei se existem outros padrões:
1) Retornar o status 200 (já que a requisição foi enviada com sucesso) e no response enviar os detalhes do erro. O problema que vejo nesta abordagem é que preciso olhar a resposta para saber se existe um erro ou não.
Status: 200 (OK)
{ "response": { "code": "202", "message": "Não foi possível gerar o cartão virtual – BIN inválido" } }
2) Retornar um status 4XX para que o cliente saiba logo de cara que houve um problema na ação realizada.
Status: 400 (Bad Request)
{ "response": { "code": "202", "message": "Não foi possível gerar o cartão virtual – BIN inválido" } }