我在Spring Boot中有一个带有Spring Data Rest的应用程序,我正在尝试使用swagger-maven-plugin生成带有Swagger的文档。控制器文档生成时没有问题,但存储库没有问题。
我在我的pom.xml中配置了如下形式的swagger-maven-plugin:
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.1.6</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>true</springmvc>
<locations>
<location>com.abelendo.repository</location>
<location>com.abelendo.controller</location>
</locations>
<schemes>http</schemes>
<host>localhost:8080</host>
<basePath>/</basePath>
<info>
<title>Swagger Maven Plugin Spring Boot for cars</title>
<version>v1</version>
<description>Working sample of Spring Boot for cars annotations</description>
<termsOfService>
http://www.github.com
</termsOfService>
<contact>
<email>abelendo@email.com</email>
<name>Abelendo Cars</name>
<url>http</url>
</contact>
<license>
<url>http://www.license.com</url>
<name>License name</name>
</license>
</info>
<!-- Support classpath or file absolute path here.
1) classpath e.g: "classpath:/markdown.hbs", "classpath:/templates/hello.html"
2) file e.g: "${basedir}/src/main/resources/markdown.hbs",
"${basedir}/src/main/resources/template/hello.html" -->
<templatePath>${basedir}/templates/strapdown.html.hbs</templatePath>
<outputPath>${basedir}/generated/document.html</outputPath>
<outputFormats>yaml</outputFormats>
<swaggerApiReader>com.github.kongchen.swagger.docgen.reader.SpringMvcApiReader</swaggerApiReader>
<swaggerDirectory>generated/swagger-ui</swaggerDirectory>
</apiSource>
</apiSources>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>我的CarRepository:
@Api(tags = "CarsRepo")
@RepositoryRestResource(path = "cars")
public interface CarRepository extends CrudRepository<Car, Long> {
<S extends Car> S save(@Valid S cars);
}可以使用swagger-maven-plugin生成存储库文档吗?
发布于 2019-09-18 14:39:09
要为@RepositoryRestResource生成swagger文档,您需要做的就是:
-
springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration类。@Configuration
@EnableSwagger2
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfig {
@Bean
public Docket api() { ... }
}编辑:swagger配置类不适用于spring-Boot2.0、spring-Data2.0和spring-data -REST3.0:在swagger中有一个开放的问题(链接到swagger不是Java8,而spring-boot和spring-data是)。详情请看这里:https://github.com/springfox/springfox/issues/2298。
然而,我设法通过修补几个swagger类来解决这个问题。补丁背后的想法是使用Java而不是Guava和Optional。打补丁的类包括:
springfox.documentation.spring.data.rest.EntityServicesProviderspringfox.documentation.spring.data.rest.EntityContextspringfox.documentation.spring.data.rest.EntityDeleteExtractorspringfox.documentation.spring.data.rest.EntityFindAllExtractorspringfox.documentation.spring.data.rest.EntityFindOneExtractorspringfox.documentation.spring.data.rest.EntitySaveExtractor发布于 2021-10-11 09:54:30
I在pom.xml中只有1个依赖项
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-data-rest -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>3.0.0</version>
</dependency>然后在存储库中导入@Import(SpringDataRestConfiguration.class)
并且它生成文档
https://stackoverflow.com/questions/49117807
复制相似问题