Controller - Alteração GET
Como é possível ver nos métodos acima, fazemos no proprio retorno a busca ou save ou qualquer outro método do repository, iremos mudar isso.
Import dos links e methodOn
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
Exemplo de alteração:
ANTES
@GetMapping("/products")
public ResponseEntity<List<ProductModel>> getAllProducts() {
return ResponseEntity.status(HttpStatus.OK).body(productRepository.findAll());
}
DEPOIS
@GetMapping("/products")
public ResponseEntity<List<ProductModel>> getAllProducts() {
List<ProductModel> productsList = productRepository.findAll();
if (!productsList.isEmpty()) {
for (ProductModel product : productsList) {
UUID id = product.getIdProduct();
product.add(linkTo(methodOn(ProductController.class).getOneProduct(id)).withSelfRel());
}
}
return ResponseEntity.status(HttpStatus.OK).body(productsList);
}
Atualizado