我有一个使用Spring Boot 2.2.4.RELEASE的REST应用程序。我的REST控制器带有注释,例如
@RestController
@RequestMapping("/")
我的REST控制器具有@GetMapping
,@PostMapping
等,它可以正常工作。
现在,我想在最新版本中集成Swagger。https://github.com/swagger-api/swagger-corehttps://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Getting-started
我在其中显示的Maven依赖项已添加到pom.xml:
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-core</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-models</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-integration</artifactId>
<version>2.1.1</version>
</dependency>
[根据'入门',仅添加依赖项,我应该在http://localhost:8080/openapi.json处看到生成的OpenAPI,但在那里什么都没显示。
Swagger(在2.1.1版本中为swagger-core,...)可用于Spring Boot Web应用程序吗?
有一个项目SpringFox,但它不是最新的。也可以使用springdoc-openapi。但是直接使用Swagger是我的第一个想法。
您的代码中将需要SwaggerConfig文件。
Swagger for Java中所需的配置如下:(请注意,这只是基本文件,您可以根据需要配置它。)
@EnableSwagger2
@Configuration
public class SwaggerConfig {
public static String bucketName;
@Value("${swagger.config.basePackage}")
public void setName(String name) {
bucketName = name;
}
@Bean
public Docket classifiedApi()
{
ArrayList<ApiKey> apiKeys=new ArrayList<>();
apiKeys.add(apiKey());
return new Docket(DocumentationType.SWAGGER_2).securitySchemes(apiKeys)
.select()
.apis(RequestHandlerSelectors.basePackage(bucketName))
.build()
.apiInfo(metaData());
}
private ApiKey apiKey() {
return new ApiKey("Api Key", Constants.JWTToken.API_KEY, "header");
}
private ApiInfo metaData() {
return new ApiInfoBuilder()
.title("APPNAME REST API")
.description("Spring Boot REST API for APPNAME")
.contact(new Contact("YOURNAME ", "Coming Soon ...", "CONTACT ADDRESS"))
.build();
}
}