{"action":"created","issue":{"url":"https://api.github.com/repos/frontendbr/forum/issues/970","repository_url":"https://api.github.com/repos/frontendbr/forum","labels_url":"https://api.github.com/repos/frontendbr/forum/issues/970/labels{/name}","comments_url":"https://api.github.com/repos/frontendbr/forum/issues/970/comments","events_url":"https://api.github.com/repos/frontendbr/forum/issues/970/events","html_url":"https://github.com/frontendbr/forum/issues/970","id":302281144,"number":970,"title":"Integração de API com Front, quem deve lidar com os erros?","user":{"login":"victorsilent","id":8001358,"avatar_url":"https://avatars3.githubusercontent.com/u/8001358?v=4","gravatar_id":"","url":"https://api.github.com/users/victorsilent","html_url":"https://github.com/victorsilent","followers_url":"https://api.github.com/users/victorsilent/followers","following_url":"https://api.github.com/users/victorsilent/following{/other_user}","gists_url":"https://api.github.com/users/victorsilent/gists{/gist_id}","starred_url":"https://api.github.com/users/victorsilent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victorsilent/subscriptions","organizations_url":"https://api.github.com/users/victorsilent/orgs","repos_url":"https://api.github.com/users/victorsilent/repos","events_url":"https://api.github.com/users/victorsilent/events{/privacy}","received_events_url":"https://api.github.com/users/victorsilent/received_events","type":"User","site_admin":false},"labels":[{"id":319789306,"url":"https://api.github.com/repos/frontendbr/forum/labels/Geral","name":"Geral","color":"E6E9ED","default":false},{"id":371544079,"url":"https://api.github.com/repos/frontendbr/forum/labels/[Discuss%C3%A3o]","name":"[Discussão]","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-03-05T12:27:42Z","updated_at":"2018-03-23T02:52:10Z","closed_at":null,"author_association":"NONE","body":"Olar a todos, esses dias entrei numa discussão com uns amigos (back vs front) em que discordamos sobre quem deveria mandar a mensagem de erro ao ter um request respondido.\r\nAs duas posições foram: \r\n1 - Em casos simplórios (forms onde apenas um campo seria unique no banco) o back deveria apenas retornar o código do http e apenas com isso o front deveria passar ao usuário que algo deu errado ali, EX: deu 404, então o login e senha estão incorretos.\r\n2 - Mesmo em casos simplórios o back deveria retornar além do código de erro, uma mensagem informando o que aconteceu com a requisição. Ex: deu 404, no corpo da response vem {error: \"Login ou senha inválidos\"}\r\n\r\nEu concordo com o caso 1 em algumas situações, mas acredito que o caso 2 seria o caso mais correto e que iria abranger 99% dos projetos. Queria saber de vocês como tratam essa questão da criação dos erros? Responsabilidade do back ou do front?\r\n"},"comment":{"url":"https://api.github.com/repos/frontendbr/forum/issues/comments/375526636","html_url":"https://github.com/frontendbr/forum/issues/970#issuecomment-375526636","issue_url":"https://api.github.com/repos/frontendbr/forum/issues/970","id":375526636,"user":{"login":"safirelauene","id":7340250,"avatar_url":"https://avatars1.githubusercontent.com/u/7340250?v=4","gravatar_id":"","url":"https://api.github.com/users/safirelauene","html_url":"https://github.com/safirelauene","followers_url":"https://api.github.com/users/safirelauene/followers","following_url":"https://api.github.com/users/safirelauene/following{/other_user}","gists_url":"https://api.github.com/users/safirelauene/gists{/gist_id}","starred_url":"https://api.github.com/users/safirelauene/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safirelauene/subscriptions","organizations_url":"https://api.github.com/users/safirelauene/orgs","repos_url":"https://api.github.com/users/safirelauene/repos","events_url":"https://api.github.com/users/safirelauene/events{/privacy}","received_events_url":"https://api.github.com/users/safirelauene/received_events","type":"User","site_admin":false},"created_at":"2018-03-23T02:52:10Z","updated_at":"2018-03-23T02:52:10Z","author_association":"NONE","body":"Eu acredito que a melhor forma seja ter o tratamento do erro em ambos os lados. \r\nSe, por exemplo, em um formulário o campo 'telefone' é obrigatório então o front pode exibir uma mensagem indicando que aquele campo precisa ser preenchido até mesmo antes de submeter o formulário mas o back também deve retornar um status e uma mensagem de erro indicando que o campo deve ser preenchido, pois pode ser que o browser seja burlado ou a api esteja sendo utilizada ou irá ser usada em outras aplicações.\r\nHá também outros cenários onde eu acho que a validação pode ocorrer somente no front, em casos que não tratem do modelo ou regra de negócio, como por exemplo, submeter um formulário com um campo e-mail garantindo que o e-mail seja enviado pra api com formato válido.\r\n"}}
{"actor":{"display_login":"safirelauene"}}