Swagger
Swagger是一種和語(yǔ)言無(wú)關(guān)的規(guī)范和框架,用于定義服務(wù)接口,主要用于描述RESTful的API。它專(zhuān)注于為API創(chuàng)建優(yōu)秀的文檔和客戶(hù)端庫(kù)。支持Swagger的API可以為API方法生成交互式的文檔,讓用戶(hù)可以通過(guò)以可視化的方式試驗(yàn),查看請(qǐng)求和響應(yīng)、頭文件和返回代碼,從而發(fā)現(xiàn)API的功能。
SpringBoot嵌入SwaggerUI
步驟
1.jar包引入
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
2.基于SpringBoot配置SwaggerConfig
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket newsApi() {
//return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().paths(PathSelectors.any()).build();
Docket docket = new Docket(DocumentationType.SWAGGER_2);
docket.enable(true);
docket.apiInfo(apiInfo()).select().paths(PathSelectors.any()).build();
return docket;
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("訂單中心測(cè)試平臺(tái)").description("在這里你可以瀏覽項(xiàng)目所有接口,并提供相關(guān)測(cè)試工具")
.termsOfServiceUrl("http://www-03.ibm.com/software/sla/sladb.nsf/sla/bm?Open").contact("test")
.license("China Red Star Licence Version 1.0").licenseUrl("#").version("1.0").build();
}
}
3.WebConfig配置說(shuō)明
這里有一個(gè)需要注意的問(wèn)題,讓W(xué)ebConfig去繼承WebMvcAutoConfigurationAdapter而不是直接繼承WebMvcConfigurerAdapter,否則Swagger的頁(yè)面出不來(lái)。
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcAutoConfigurationAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public Filter characterEncodingFilter() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceEncoding(true);
return characterEncodingFilter;
}
@Bean
public MappingJackson2HttpMessageConverter converter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
return converter;
}
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setViewClass(JstlView.class);
resolver.setPrefix("/jsp");
resolver.setSuffix(".jsp");
return resolver;
}
@Bean
public StandardServletMultipartResolver getStandardServletMultipartResolver() {
return new StandardServletMultipartResolver();
}
}
4.SwaggerUI頁(yè)面訪問(wèn)
http://localhost:8080/projectName/swagger-ui.html#!/