Создание статических документов с помощью springfox, swagger и gradle

Я оценил интеграцию springfox в простое приложение Spring Boot с несколькими REST API. На первый взгляд все работает нормально — когда приложение запускается, я вижу спецификацию Swagger в конечной точке JSON, могу подключиться и поэкспериментировать с пользовательским интерфейсом Swagger, учитываются аннотации Swagger, я могу генерировать статические HTML-документы с кодом ген и т.д., и т.д., и т.п.

Теперь мне интересно что-то действительно простое: как генерировать статические документы в процессе сборки? Я использую град. Во время сборки сервер, по-видимому, не работает, и конечная точка JSON, в которой находится спецификация swagger, просто недоступна...

E.g.: code base -> build -> (executable jar + documentation + ... )


person Lachezar Balev    schedule 18.05.2017    source источник


Ответы (1)


Мне пришлось сгенерировать файлы swagger.json во время сборки, чтобы позаботиться о том, чтобы управление версиями API работало правильно при передаче версии в заголовке Accept. Сделал это, используя Maven, но я думаю, что это может помочь вам в качестве отправной точки. К вашему сведению, я сделал это для документирования API, используя Spring Boot, Jersey и Swagger и Spring Boot, CXF и Swagger вместо Spring MVC, Swagger и springfox.

Использование этого плагина также может помочь вам:

<properties>
    <swagger-maven-plugin.version>3.1.3</swagger-maven-plugin.version>
</properties>
 ...
<plugin>
  <groupId>com.github.kongchen</groupId>
  <artifactId>swagger-maven-plugin</artifactId>
  <version>${swagger-maven-plugin.version}</version>
  <configuration>
    <apiSources>
      <!-- Version 1 -->
      <apiSource>
        <springmvc>false</springmvc>
        <locations>com.asimio.swaggerexample.rest.v1</locations>
        <schemes>http,https</schemes>
        <basePath>/api</basePath>
        <info>
          <title>Multiversion Spring Boot + Jersey + Swagger Demo (Version 1)</title>
          <version>v1</version>
          <description>A multi-version demo (version 1) of a RESTful service using Spring Boot, Jersey and Swagger.</description>
          <termsOfService>http://www.github.com/kongchen/swagger-maven-plugin</termsOfService>
          <contact>
            <email>[email protected]</email>
            <name>Orlando L Otero</name>
            <url>http://tech.asimio.net</url>
          </contact>
          <license>
            <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
            <name>Apache 2.0</name>
          </license>
        </info>
        <outputFormats>json</outputFormats>
        <swaggerDirectory>${basedir}/target/classes/static/v1</swaggerDirectory>
        <swaggerApiReader>com.github.kongchen.swagger.docgen.reader.JaxrsReader</swaggerApiReader>
      </apiSource>
      <!-- Version 2 -->
...

Более подробную информацию можно найти по адресу: Документирование нескольких версий REST API с использованием Spring Boot, Jersey и Swagger

person ootero    schedule 18.05.2017
comment
пффф... ладно. Кажется, это будет долгий путь. Я попробую некоторые идеи и градуированные плагины в эти дни.... - person Lachezar Balev; 19.05.2017