У меня есть приложение Springboot (приложение видеоклуба).Я не думаю, что нужно показывать вам весь код, поскольку он был бы очень многословным.Но он отлично работает.
Класс Film
и FilmRepository
с некоторыми методами, контроллером, базой данных JPA и файлами HTML.Все отлично работает Я не ищу решение для кода, а скорее для "концептуального" решения , просто чтобы знать, правильно ли я реализую службу REST.
Я хочу добавить сейчас действительно простоеСлужба REST (добавление класса «MyRestController»), которая будет искать фильм, просто добавив его название в URL.
Поэтому, помимо моего контроллера, я хочу добавить этот RestController просто для того, чтобы сделать это простымвещь: если я добавлю название фильма в URL, он будет искать его обычными методами MVC.
Но добавление того, что я считаю решением, дает мне эту ошибку:
Произошла непредвиденная ошибка (тип = Не найдено, статус = 404).Сообщение недоступно
Поэтому, просматривая содержимое HTML на странице для поиска фильма и добавляя к этому /buscar
название фильма (которое у меня есть в БД) /buscar/Interstellar
,он показывает ошибку before.
@CrossOrigin
@RestController
public class MyRestController {
@Autowired
private FilmRepository filmRepo;
@RequestMapping(value = "/buscar", method = RequestMethod.GET)
public ResponseEntity<List<Film>> getFilms(@RequestParam String Title) {
List<Film> pelis = (List<Film>) filmRepo.findByTitle(Title);
HttpStatus status = HttpStatus.OK;
ResponseEntity<List<Film>> response = new ResponseEntity<>(pelis, status);
return response;
}
}
Получение этой ошибки заставляет меня думать, что страница знает, что она должна что-то сделать, но может иметь проблемы с ее получением (из-за строк, повторяемых вещей, списков или тому подобногопроблемы, JSON может быть).Но я не знаю, в порядке ли «теория» службы покоя в MyRestController.
Репозиторий фильмов:
public interface FilmRepository extends CrudRepository<Film, Long>{
Iterable<Film> findByTitle(String Title);
}
(метод MVC в обычном контроллере)
@RequestMapping("/buscar")
public ModelAndView processSearch(@RequestParam(value = "title", required = false) String title) {
if (title == null || title == "") {
Iterable<Film> films = filmRepo.findAll();
return new ModelAndView("buscar").addObject("films", films);
}
Iterable<Film> films = filmRepo.findByTitle(title);
return new ModelAndView("buscar").addObject("films", films);
}