首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring Boot - Spring Data REST从存储库生成swagger文档

Spring Boot - Spring Data REST从存储库生成swagger文档
EN

Stack Overflow用户
提问于 2018-03-06 03:11:59
回答 2查看 821关注 0票数 1

我在Spring Boot中有一个带有Spring Data Rest的应用程序,我正在尝试使用swagger-maven-plugin生成带有Swagger的文档。控制器文档生成时没有问题,但存储库没有问题。

我在我的pom.xml中配置了如下形式的swagger-maven-plugin:

代码语言:javascript
运行
复制
                <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:

代码语言:javascript
运行
复制
@Api(tags = "CarsRepo")
@RepositoryRestResource(path = "cars")
public interface CarRepository extends CrudRepository<Car, Long> {

<S extends Car> S save(@Valid S cars);

}

可以使用swagger-maven-plugin生成存储库文档吗?

EN

回答 2

Stack Overflow用户

发布于 2019-09-18 14:39:09

要为@RepositoryRestResource生成swagger文档,您需要做的就是:

  1. 拉取项目中的io.springfox:springfox-

-

  1. 依赖项
  2. 在swagger配置类中导入springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration类。

代码语言:javascript
运行
复制
@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.EntityServicesProvider
  • springfox.documentation.spring.data.rest.EntityContext
  • springfox.documentation.spring.data.rest.EntityDeleteExtractor
  • springfox.documentation.spring.data.rest.EntityFindAllExtractor
  • springfox.documentation.spring.data.rest.EntityFindOneExtractor
  • springfox.documentation.spring.data.rest.EntitySaveExtractor
票数 0
EN

Stack Overflow用户

发布于 2021-10-11 09:54:30

I在pom.xml中只有1个依赖项

代码语言:javascript
运行
复制
<!-- 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)

并且它生成文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49117807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档