詳解如何在SpringBoot里使用SwaggerUI
Swagger
Swagger是一種和語言無關(guān)的規(guī)范和框架,用于定義服務(wù)接口,主要用于描述RESTful的API。它專注于為API創(chuàng)建優(yōu)秀的文檔和客戶端庫。支持Swagger的API可以為API方法生成交互式的文檔,讓用戶可以通過以可視化的方式試驗,查看請求和響應(yīng)、頭文件和返回代碼,從而發(fā)現(xiàn)API的功能。
swagger用于定義API文檔。
好處:
- 前后端分離開發(fā)
- API文檔非常明確
- 測試的時候不需要再使用URL輸入瀏覽器的方式來訪問Controller
- 傳統(tǒng)的輸入URL的測試方式對于post請求的傳參比較麻煩(當(dāng)然,可以使用postman這樣的瀏覽器插件)
- spring-boot與swagger的集比較成簡單
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("訂單中心測試平臺").description("在這里你可以瀏覽項目所有接口,并提供相關(guān)測試工具")
.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配置說明
這里有一個需要注意的問題,讓W(xué)ebConfig去繼承WebMvcAutoConfigurationAdapter而不是直接繼承WebMvcConfigurerAdapter,否則Swagger的頁面出不來。
@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頁面訪問
http://localhost:8080/projectName/swagger-ui.html#!/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- springboot集成swagger、knife4j及常用注解的使用
- SpringBoot中使用Swagger的最全方法詳解
- SpringBoot項目中使用Swagger2及注解解釋的詳細(xì)教程
- SpringBoot使用Swagger范例講解
- SpringBoot2.6.x升級后循環(huán)依賴及Swagger無法使用問題
- springboot使用swagger-ui 2.10.5 有關(guān)版本更新帶來的問題小結(jié)
- SpringBoot如何優(yōu)雅地使用Swagger2
- SpringBoot整合Swagger和Actuator的使用教程詳解
- SpringBoot3使用Swagger3的示例詳解
相關(guān)文章
java結(jié)合keytool如何實現(xiàn)非對稱加密與解密詳解
這篇文章主要給大家介紹了關(guān)于java結(jié)合keytool如何實現(xiàn)非對稱加密與解密的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Java線程池ForkJoinPool(工作竊取算法)的使用
Fork就是把一個大任務(wù)切分為若干個子任務(wù)并行地執(zhí)行,Join就是合并這些子任務(wù)的執(zhí)行結(jié)果,最后得到這個大任務(wù)的結(jié)果。Fork/Join?框架使用的是工作竊取算法。本文主要介紹了ForkJoinPool的使用,需要的可以參考一下2022-11-11
Java數(shù)據(jù)結(jié)構(gòu)通關(guān)時間復(fù)雜度和空間復(fù)雜度
對于一個算法,其時間復(fù)雜度和空間復(fù)雜度往往是相互影響的,當(dāng)追求一個較好的時間復(fù)雜度時,可能會使空間復(fù)雜度的性能變差,即可能導(dǎo)致占用較多的存儲空間,這篇文章主要給大家介紹了關(guān)于Java時間復(fù)雜度、空間復(fù)雜度的相關(guān)資料,需要的朋友可以參考下2022-05-05
java中volatile關(guān)鍵字的作用與實例代碼
這篇文章主要給大家介紹了關(guān)于java中volatile關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

