Плагин Swagger Maven не генерирует параметры из аннотированных параметров @BeanParam - PullRequest
0 голосов
/ 04 июня 2019

Как указано в заголовке, моя конфигурация подключаемого модуля swagger maven, похоже, пропускает параметры, помеченные @ BeanParam.

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

Позвоните в основной класс Пример MyBean

Вот моя текущая конфигурация

Мои входные файлы

//MyInterface.java
@Api(value = "myInterface")
public interface MyInterface {
    @Path("/.../{bar}/.../{baz}")
    Response foo(@BeanParam MyBean myBean);
}
//MyBean.java
public class MyBean {
    @PathParam("bar")
    private Long bar;

    @PathParam("baz")
    private Long baz;

    //getters and setters
}
<!-- pom.xml -->
<plugin>
  <groupId>com.github.kongchen</groupId>
  <artifactId>swagger-maven-plugin</artifactId>
  <version>3.1.8</version>
  <executions>
    <execution>
      <id>ID</id>
      <phase>compile</phase>
      <goals>
        <goal>generate</goal>
      </goals>
      <configuration>
        <apiSources>
          <apiSource>
            <springmvc>false</springmvc>
            <locations>
              <location>package.of.MyInterface</location>
              <location>package.of.MyBean</location>
            </locations>
            <schemes>
              <scheme>https</scheme>
            </schemes>
            <host>${swagger.ui.host}</host>
            <basePath>/api</basePath>
            <info>
              <title>Title</title>
              <version>1.0.0</version>
              <description>Desc</description>
            </info>
            <outputFormats>yaml</outputFormats>
            <swaggerFileName>${project.name}-external</swaggerFileName>
            <swaggerDirectory>${project.build.directory}/swagger</swaggerDirectory>
          </apiSource>
        </apiSources>
      </configuration>
    </execution>
   </executions>
 </plugin>

Мой выходной файл Swagger

---
swagger: "2.0"
#...
paths:
  /.../{bar}/.../{baz}:
    put:
      operationId: "foo"
      parameters: []

Что заставляет массив параметров в выводе оставаться пустым? Все мои методы без аннотаций работают нормально.

1 Ответ

0 голосов
/ 07 июня 2019

В итоге я использовал этот плагин, документация немного скудная, но прохождение примеров очень помогает. В качестве дополнительного бонуса он генерирует openapi3 вместо swagger 2.

...