J'exécute le springdoc-openapi-maven-plugin, avec la configuration (standard) suivante:
<plugin>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-maven-plugin</artifactId>
<version>0.2</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Le plugin semble fonctionner, mais il n'y a pas de sortie.
J'obtiens une erreur 404 dans la sortie Maven:
[INFO] --- springdoc-openapi-maven-plugin:0.2:generate (integration-test) @ paatinc-util-websrv ---
10:40:33.930 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
10:40:33.931 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
10:40:33.956 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 25 ms
10:40:33.969 [http-nio-8080-exec-1] INFO io.paat.util.filter.LoggingFilter - GET http://localhost:8080/v3/api-docs from 127.0.0.1
[ERROR] An error has occured: Response code 404
Je peux voir dans mon journal que le 404 est sur un appel à: http: // localhost: 8080/v3/api-docs
Je vois également dans la documentation springdoc-openapi-maven-plugin la configuration suivante:
<configuration>
<apiDocsUrl>http://localhost:8080/v3/api-docs</apiDocsUrl>
<outputFileName>openapi.json</outputFileName>
<outputDir>/home/springdoc/maven-output</outputDir>
</configuration>
Ainsi, il semble que le plugin tente d'ouvrir le serveur local pendant les tests d'intégration et échoue. Quel est l'intérêt de cela? Je pensais que le plugin lirait mes fichiers source et générerait un fichier openapi.json. Pourquoi faut-il établir une connexion HTTP avec/v3/api-docs?
Ajoutez d'abord cette dépendance Maven à votre projet:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.3.2</version>
<scope>compile</scope>
</dependency>
Deuxièmement, rendre le plugin Maven exécutable:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-maven-plugin</artifactId>
<version>0.3</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<outputFileName>openapi.json</outputFileName>
<outputDir>${project.build.directory}/openapi-spec</outputDir>
</configuration>
</plugin>
</plugins>