PathVariable и pathvariable с конечными точками requestparam в остальных контроллерах

Я хочу создать 2 конечные точки в моем аннотированном весеннем загрузочном проекте @RestController.

Endpoint 1: api/account/balance/{accountnum}

Endpoint 2: api/account/balance/{accountnum}?datetime = {datetime}

Обе конечные точки имеют один и тот же URI до тех пор, пока переменная пути, но вторая не имеет в ней дополнительный параметр запроса. Но когда я отправляю запрос, он всегда переходит к первой конечной точке (без параметра запроса).

Можно ли создать эти 2 конечные точки с одним и тем же URL-адресом, но с дополнительным параметром запроса?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет, вы не можете, вы можете получить значение параметра datetime, если оно имеет значение, затем выполните операцию на его основе, иначе выполните другую операцию.

Вы можете создать одну конечную точку с параметром запроса как необязательным по умолчанию. Если вы хотите указать, вы можете использовать, как показано ниже

@RequestParam(value = "myProp", required = false) String myProp

Я думаю, что @Te J as пытается сказать, что в контроллере должен быть один метод для разрешения URI api/account/balance/{accountnum}. Затем на основе параметра datetime; который должен быть необязательным, вы можете вернуть желаемый результат контроллером. В противном случае будет невозможно иметь 2 преобразователя для одной и той же конечной точки, если только один не является post, а другой — get.

atish.s 19.03.2022 20:11

Другие вопросы по теме