swagger 2.0 — как решить проблему с одинаковыми именами классов ответов в разных пакетах в приложении spring boot

#java #spring-boot #swagger #openapi #swagger-2.0

#java #spring-boot #swagger #openapi #swagger-2.0

Вопрос:

Например, в разных пакетах есть два класса с одинаковыми именами Group. Но при обращении к моделям в пользовательском интерфейсе swagger отображается только одна модель, и даже отображение ответов неверно, swagger неправильно ссылается на эти модели.

Комментарии:

1. Одним из обходных путей является использование @ApiModel для обеих моделей. Есть ли лучшее решение.

2. Вы нашли решение этой проблемы?

Ответ №1:

Сегодня я столкнулся с той же проблемой с springdoc-openapi-ui: 1.5.9 и, возможно, решил ее.

Просто добавьте пары ключ-значение в application.properties.

 springdoc.use-fqn=true
 

Затем org.springdoc.core.SpringDocConfigProperties считывает это значение и передает его в io.swagger.v3.core.jackson.TypeNameResolver.

Ответ №2:

ДА. Добавление свойства ниже решает эту проблему.

 springdoc.use-fqn=true
 

Но после добавления этого схемы в пользовательском интерфейсе swagger начинают отображаться с полным именем пакета. Чтобы избежать этого, попробуйте аннотировать свои классы моделей с помощью:

 @Schema(name = "class name to be displayed")