我通过包含依赖项来添加swagger到我的Spring Boot应用程序:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.3.1</version>
</dependency>
并添加配置类:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.or(PathSelectors.regex("...")))
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfo(...);
}
}
我现在可以访问/v2/api-docs
并获取一些似乎描述我的API的JSON。但是,JSON包含在另一个JSON对象中,如下所示(缩写):
{"value":"{\"swagger\":\"2.0\",\"info\":...}
不需要{"value": "..."}
对象,并在swagger-ui中导致错误。 PetStore示例没有这个额外的级别。这个错误?还是配置问题?
PS:我还为那个
创建了一个github issue答案 0 :(得分:0)
https://github.com/springfox/springfox/issues/1156的那些人指出了我正确的方向。问题如下:
我正在使用Gson代替杰克逊来解散/序列化Json。当类型springfox.documentation.spring.web.json.Json
的对象被序列化时,包含的注释被杰克逊认为但被Gson忽略。