Olá Wesley! Tudo bem?
Primeiro, no seu VideoController
, você precisa ajustar a anotação @GetMapping
para aceitar query parameters. Atualmente, você está utilizando @PathVariable
, mas para query parameters, utilizamos @RequestParam
.
Aqui está um exemplo de como você pode fazer isso:
@GetMapping("/videos")
public ResponseEntity buscarPorTituloIgnoreCase(@RequestParam(value = "search", required = false) String titulo) {
if (titulo != null) {
var video = repository.findByTituloContainingIgnoreCase(titulo);
return ResponseEntity.ok().body(new DadosDetalhamentoVideo(video));
} else {
// Se não houver parâmetro de busca, retorne todos os vídeos ou uma mensagem de erro
var videos = repository.findAll(); // ou outro método para listar todos os vídeos
return ResponseEntity.ok().body(videos);
}
}
No seu VideoRepository
, o método findByTituloContainingIgnoreCase
está correto. Ele já está configurado para buscar vídeos pelo título ignorando maiúsculas e minúsculas.
Agora, no Postman, você deve fazer a requisição da seguinte maneira:
GET http://localhost:8080/videos?search=jogos
Com essas alterações, a rota deve funcionar corretamente para buscar vídeos pelo nome utilizando query parameters.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.