我在Spring Boot中有一个带有Spring Data Rest的应用程序,我正在尝试使用Swagger maven插件生成带有Swagger的文档。生成控制器文档时没有问题,但存储库没有问题。
我已经在pom中配置了如下形式的swagger maven插件。xml:
<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>
我的随身携带物品:
@Api(tags = "CarsRepo")
@RepositoryRestResource(path = "cars")
public interface CarRepository extends CrudRepository<Car, Long> {
<S extends Car> S save(@Valid S cars);
}
是否可以用swagger-maven-plugin生成存储库留档?
我在pom中只有1个依赖项。xml
<!-- 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>
然后导入@导入(SpringDataRestConfiguration.class)
在资源库中
并生成文档
为了为@RepositoryRestResources
生成swagger留档,您需要做的就是:
@Configuration
@EnableSwagger2
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfig {
@Bean
public Docket api() { ... }
}
编辑:swagger配置类不适用于spring boot 2.0、spring data 2.0和spring data rest 3.0:swagger中存在一个公开问题(链接到swagger不是Java8,而spring boot和spring data是Java8)。详情请参见此处:https://github.com/springfox/springfox/issues/2298.
然而,我通过修补几个招摇过市的类成功地解决了这个问题。该补丁背后的想法是使用JavaOptional
,而不是Guava和Java反射。补丁类包括:
springfox.documentation.spring.data.rest.实体服务提供商
springfox.documentation.spring.data.rest.EntityContext
springfox.documentation.spring.data.rest.实体DeleteExtrator
springfox.documentation.spring.data.rest.实体FindAllExtrator
springfox.documentation.spring.data.rest.实体FindOneExtrator
springfox.documentation.spring.data.rest.实体保存提取器
现在,当调用“/comments/1”时,我得到了404个错误,所以数据rest没有公开我的存储库。主要问题是“如何模拟存储库方法从数据库中获取数据?” 我的测试类: 据我所知,使用MockBean注释我替换了当前的存储库bean并且它不会被数据rest公开,我们有没有办法将数据预填充到db或存储库方法的模拟调用?
正如标题所说,当我将spring数据rest存储库添加到现有的spring数据rest webmvc项目中时,我开始在项目运行中出错。 我试图使用@ConvertBy(MyConverter.class)在实体中遵循此链接进行嵌入ID转换。然而,仅仅添加jar就会导致以下错误和大量o. s. c. i. s. PathMatchingResourcePatterResolver日志。
我得到这个错误:
我有一个麻烦与Springfox昂首阔步2为我的API留档。它无法识别我的Rest存储库(JpaRepository/PagingAndSortingRepository)。 甚至我也尝试添加下面这样的招摇注释,但没有成功 而HAL浏览器可以识别我的Rest存储库。有人能帮我吗?这是我对pom的依赖, 这是我的靴子课, 当我添加时,在应用程序启动时出现以下错误
我想用springboot项目生成MySQL数据库。我创建了一个maven项目,这是pom.xml:
问题内容: 我有使用Java的JAX-RS / Jersey开发的REST API。我想为其转换/生成基于Swagger的UI文档。有人可以简单的方式告诉我精确的步骤吗?很抱歉,他们网站上的步骤对我来说并不清楚。 问题答案: 有几种方法可以将swagger-core与您的应用程序集成,但是根据您的描述,我将按照https://github.com/swagger- api/swagger-core