Контроллер Spring Boot Rest - Выбор маршрута - PullRequest
0 голосов
/ 09 июля 2020

Пытаюсь выяснить, почему оставшийся контроллер выбрал определенный маршрут ...

@RestController
public class BookingController {

  // other code

  @GetMapping("/bookings/time={startTime}&{endTime}")
      public List<Booking> getBookingsDuringTime(@PathVariable String startTime,
                                               @PathVariable String endTime) {
      // function code
  }

  @GetMapping("/bookings/{bookingId}")
  public Booking getBookingById(@PathVariable long bookingId) {
      // function code
  }

Когда я отправил почтовый запрос на маршрут "/ bookings / time = 2020-10-11T18: 00: 00.00 и 2020-10-11T21: 00: 00.00 "он попытается направить запрос через getBookingById. Это вызвало исключение для недопустимого типа параметра.

Я изменил так, чтобы

@GetMapping("/bookings/{bookingId}")

стал

@GetMapping("/bookings/id={bookingId}")

, тогда программа ответила, как и ожидалось, перенаправив запрос через getBookingsDuringTime и возвращает правильную информацию.

1 Ответ

0 голосов
/ 09 июля 2020

IMHO, ваш остальной URL-адрес неверен с самого начала ... Я бы сделал как:

  @GetMapping("/bookings")
  public List<Booking> getBookingsDuringTime(@RequestParam String startTime,
                                           @RequestParam  String endTime) {
  // function code
  }

  @GetMapping("/bookings/{bookingId}")
  public Booking getBookingById(@PathVariable long bookingId) {
      // function code
  }

, и вы бы назвали getBookingsDuringTime как

/bookings?startTime=XXX&endTime=XXX
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...