You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Olá tudo bem , eu fiz o Bootcamp DIO Pan e fiz o modulo do RDS com HATEOAS , conclui o projeto e gostei muito das aulas porém quero pontuar alguns pontos, a primeira observação foi no LoadDBHateoas.java
No codigo feito em aula nos videos vc colocou a anotação @Autowired quando estava mostrando o loadOrder, na verdade a anotação e @bean por isso não funcionou no video, onde vc acbou juntando os dois num mesmo metodo. Eu fiz dessa forma abaixo e funcionou muito bem.
@Configuration
public class LoadDBHateoas {
private static final Logger log = LoggerFactory.getLogger(LoadDBHateoas.class);
@Bean
CommandLineRunner loadEmployees(EmployeeRepositoryHateoas employeeRepositoryHateoas){
return args -> {
log.info("Log of event save user 1: "+ employeeRepositoryHateoas.save(new EmployeeHateoas("Claudio","ADMIN","Rua jupi 215")));
log.info("Log of event save user 1: "+ employeeRepositoryHateoas.save(new EmployeeHateoas("Clovis","USERS","Avenida Joao Dias, 3000")));
};
}
@Bean
CommandLineRunner loadOrder(OrderRepositoryHateoas orderRepository){
return args -> {
orderRepository.save(new OrderHateoas(Status.COMPLETED, "Completo"));
orderRepository.save(new OrderHateoas(Status.IN_PROGRESS, "Em Progresso"));
orderRepository.save(new OrderHateoas(Status.IN_PROGRESS, "Em Progresso"));
orderRepository.findAll().forEach(order -> {
log.info("Preloaded" + order);
});
};
}
}
Outro ponto foi nos controllers de Order e Employee
no seu codigo vc cria uma Exception para Employee e Order, porém ao fazer validações via postman com get quando dava que não foi encontrado o postman não exibia nenhuma mensagem personalizada. somente quando se fazia uma alteração via PUT com id invalido, verifiquei que no seu codigo vc não colocou o orElseThrow apontado para a Exception personalizada nos GetMappings vc apenas chamou o status httpStatus.NOT_FOUND , além disso o Optional não seria necessário usando com orElseThrow, evitando o if e reduzindo codigo. Na minha implementação fiz dessa forma.
@GetMapping("/employee/{id}")
public ResponseEntity<EmployeeHateoas> consultByID(@PathVariable Long id){
EmployeeHateoas employee = repositoryEmployee.findById(id).orElseThrow(() -> new EmployeeNotFoundExceptionHateoas(id));
employee.add(linkTo(methodOn(EmployeeControllerHateoas.class).listOfEmployeeAll()).withRel("All employees"));
return new ResponseEntity<>(employee, HttpStatus.OK);
}
funciona bem e exibe a mensagem de erro de employee not found. o mesmo feito com order.
@GetMapping("orders/{id}")
ResponseEntity<OrderHateoas> consultOneOrder(@PathVariable Long id){
OrderHateoas order = repositoryOrder.findById(id).orElseThrow(()-> new OrderNotFoundExceptionHateoas(id));
order.add(linkTo(methodOn(OrderControllerHateoas.class).consultOrderAll()).withRel("All orders"));
return new ResponseEntity<>(order,HttpStatus.OK);
}
Espero ter contribuido de alguma forma. Abraços.
The text was updated successfully, but these errors were encountered:
Olá tudo bem , eu fiz o Bootcamp DIO Pan e fiz o modulo do RDS com HATEOAS , conclui o projeto e gostei muito das aulas porém quero pontuar alguns pontos, a primeira observação foi no LoadDBHateoas.java
No codigo feito em aula nos videos vc colocou a anotação @Autowired quando estava mostrando o loadOrder, na verdade a anotação e @bean por isso não funcionou no video, onde vc acbou juntando os dois num mesmo metodo. Eu fiz dessa forma abaixo e funcionou muito bem.
Outro ponto foi nos controllers de Order e Employee
no seu codigo vc cria uma Exception para Employee e Order, porém ao fazer validações via postman com get quando dava que não foi encontrado o postman não exibia nenhuma mensagem personalizada. somente quando se fazia uma alteração via PUT com id invalido, verifiquei que no seu codigo vc não colocou o orElseThrow apontado para a Exception personalizada nos GetMappings vc apenas chamou o status httpStatus.NOT_FOUND , além disso o Optional não seria necessário usando com orElseThrow, evitando o if e reduzindo codigo. Na minha implementação fiz dessa forma.
funciona bem e exibe a mensagem de erro de employee not found. o mesmo feito com order.
Espero ter contribuido de alguma forma. Abraços.
The text was updated successfully, but these errors were encountered: