Используя генератор OpenAPI для Spring, плагин Gradle генерирует мой интерфейс с аннотациями @RequestMapping
. Можно ли также создавать классы с конкретной аннотацией HTTP-метода, например @GetMapping
?
Хотя я не могу найти такую опцию в документации, в этом сообщении блога, похоже, используется такая аннотация:
С помощью генератора OpenAPI вы можете создавать контроллеры Spring с конкретными аннотациями HTTP-метода, такими как @GetMapping
, @PostMapping
и т. д., вместо общих аннотаций @RequestMapping
. Этого можно достичь путем правильной настройки генератора в файле спецификации OpenAPI или с помощью параметров командной строки.
В файле спецификации OpenAPI вы можете указать атрибут уровня операции x-spring-annotations
для управления аннотациями Spring, создаваемыми для каждой операции. Например:
paths:
/example:
get:
x-spring-annotations:
operation: "@GetMapping"
Это должно помочь решить проблему.
Таким образом, если вы предпочитаете более компактную и самодостаточную спецификацию, подход @RequestMapping
может подойти. Однако, если вы цените разделение задач и сохранение спецификации OpenAPI, ориентированной исключительно на определение конечных точек, второй подход может быть лучше. В конечном счете, это вопрос предпочтений и конкретных требований вашего проекта.