Spring - Spring - неоднозначность / путаница в документации метода RequestMapping по умолчанию? - PullRequest
0 голосов
/ 19 июня 2020

From Ссылка на Spring Framework 5.2.7.RELEASE:

Для @RequestMapping без объявлений методов HTTP заголовок Allow устанавливается в GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS.

Что, безусловно, соответствует нашему повседневному опыту программирования.

Но в документации Spring Framework API [5.2.7.RELEASE] из RequestMapping:

Значение по умолчанию для элемента method представлен как

По умолчанию:

{}

Меня это смущает. Что мне здесь не хватает?

Ответы [ 3 ]

1 голос
/ 19 июня 2020

Аргумент method может использоваться для ограничения допустимых методов HTTP. По умолчанию установлено без ограничений . Поэтому по умолчанию он разрешает все методы HTTP.

Это именно то, что вам сообщает справочное руководство .

Для @RequestMapping без объявлений методов HTTP заголовок Allow установлен в GET, HEAD, POST, PUT, PATCH, DELETE , OPTIONS.

Нет объявления method, чтобы ограничить его, поэтому все принимается.

0 голосов
/ 19 июня 2020

Это означает, что метода по умолчанию нет, поэтому вы должны явно объявить его в своей функции, какой из них вы хотите использовать. В противном случае все типы запросов попадут в эту конечную точку. Поэтому оставлять его пустым - не лучшая практика. Вместо этого вы можете использовать @GetMapping et c, что, например, является условным обозначением @RequestMapping(value = "/myurl", method = {RequestMethod.GET}). Сначала это может немного сбивать с толку, но если вы объявляете пустым, то лучше получить все запросы, а не ни один из них. Я думаю, что за этим стоял лог c.

0 голосов
/ 19 июня 2020

Вы можете использовать следующий пример

    @RequestMapping(value = "/collect_list", method = {RequestMethod.POST,RequestMethod.GET})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...