Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida de Onde devo fazer a validação?

Olá, estou com a seguinte dúvida, Tenho um produto cadastrado que tem a quantidade de 1 a Única no estoque. Na Hora da venda a pagina do cliente já esta carregada mostrando que tem a quantidade de 1, Mas logo após e vendido este produto. E nesta hora o cliente quer o produto que esta carregado na tela dela. De quem e a responsabilidade de checar se ainda há o produto em Estoque, A parte do FrontEnd, ou deixar para o BackEnd retornar uma Exception. E após isso, informa o Cliente que acabo e atualizar a tela.

2 respostas

Usando alguns serviços de mensageria, microservices e tal, um evento deveria ser disparado que foi efetuado a compra deste produto (por outro usuário) e assim notificado o usuário que está fazendo a compra. Mas se for mais simples o projeto, ao clicar na compra, o backend retornaria que não existe mais esse produto. E um detalhe é que dependendo do fluxo se ele fizer um SELECT e retornar 0, isso não é uma exception, então não precisaria retornar para o usuário uma.

solução!

Olá boa tarde Gabriel. Obrigado por compartilhar seus conhecimentos. Utilizar mensageria para fazer um controle de estoque que os clientes colocarem no carrinho? Neste caso, acho que seria melhor fazer consultas ao colocar no carrinho e ao finalizar efetuar consulta e reserva ate final da transação, senao retira reserva. Mas a questão é ate onde vai a responsabilidade do FrontEnd e a Do BackEnd, ? Por exemplo um carrinho de compra, para min acho que e responsabilidade do Front, consultar item por item, antes de seguir para o pagamento. E não responsabilidade do Back retornar uma exception informando que tem divergência de quantidade em saldo. Existe alguma padronização desses casos ?

Olá, já consegui verificar de quem e as responsabilidade,Front-End: Responsável pela interação com o usuário, validação básica de entrada, envio de dados ao back-end, e exibição de respostas. Back-End: Responsável pela lógica de negócios, validação de segurança, persistência de dados, e verificação de estoque.