欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot2.x集成swagger的方法示例

 更新時(shí)間:2019年05月24日 10:16:08   作者:荔枝  
這篇文章主要介紹了springboot2.x集成swagger的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

集成swagger

pom包配置

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>
<!-- swagger-ui -->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>${swagger.version}</version>
</dependency>

添加Swagger配置文件

@Configuration
@EnableSwagger2
public class SwaggerConfig {
  /**
   * 創(chuàng)建一個(gè)Docket對(duì)象
   * 調(diào)用select()方法,
   * 生成ApiSelectorBuilder對(duì)象實(shí)例,該對(duì)象負(fù)責(zé)定義外漏的API入口
   * 通過(guò)使用RequestHandlerSelectors和PathSelectors來(lái)提供Predicate,在此我們使用any()方法,將所有API都通過(guò)Swagger進(jìn)行文檔管理
   * @return
   */
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        //標(biāo)題
        .title("Spring Boot中使用Swagger2構(gòu)建RESTful APIs")
        //簡(jiǎn)介
        .description("")
        //服務(wù)條款
        .termsOfServiceUrl("")
        //作者個(gè)人信息
        .contact(new Contact("chenguoyu","","chenguoyu_sir@163.com"))
        //版本
        .version("1.0")
        .build();
  }
}

如果不想將所有的接口都通過(guò)swagger管理的話,可以將RequestHandlerSelectors.any()修改為RequestHandlerSelectors.basePackage()

配置靜態(tài)訪問(wèn)資源

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    // 解決 swagger-ui.html 404報(bào)錯(cuò)
    registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
  }
}

到這里為止swagger就已經(jīng)配置完了,可以啟動(dòng)項(xiàng)目,然后訪問(wèn)如下鏈接即可http://localhost:9000/swagger...

端口號(hào)applicationContext中設(shè)置的端口號(hào)。

集成swagger-bootstrap-ui

由于個(gè)人感覺(jué)原生的swagger-ui不太好看,網(wǎng)上提供了swagger-bootstrap-ui。

pom依賴

<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>swagger-bootstrap-ui</artifactId>
  <version>1.9.3</version>
</dependency>

配置靜態(tài)訪問(wèn)資源

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    // 解決 swagger-ui.html 404報(bào)錯(cuò)
    registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
    // 解決 doc.html 404 報(bào)錯(cuò)
    registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");

  }
}

這時(shí)只需要訪問(wèn)以下鏈接即可http://localhost:9000/doc.html

swagger常用注解

@Api:用在類上,標(biāo)志此類是Swagger資源

屬性名稱 備注
value 該參數(shù)沒(méi)什么意義,在UI界面上不顯示,所以不用配置
tags 說(shuō)明該類的作用,參數(shù)是個(gè)數(shù)組,可以填多個(gè)
description 對(duì)api資源的描述

@ApiOperation:用在方法上,描述方法的作用

屬性名稱 備注
value 方法的用途和作用
tags 方法的標(biāo)簽,可以設(shè)置多個(gè)值
notes 方法的注意事項(xiàng)和備注
response 返回的類型(盡量不寫(xiě),由swagger掃描生成)

@ApiImplicitParams:包裝器:包含多個(gè)ApiImplicitParam對(duì)象列表

屬性名稱 備注
value 多個(gè)ApiImplicitParam配置

@ApiParam:用于Controller中方法的參數(shù)說(shuō)明

屬性名稱 備注
name 屬性名稱
value 屬性值
defaultValue 默認(rèn)屬性值
allowableValues 可以不配置
required 是否屬性必填
allowMultiple 文件上傳時(shí),是否允許多文件上傳

@ApiImplicitParam:定義在@ApiImplicitParams注解中,定義單個(gè)參數(shù)詳細(xì)信息,如果只有一個(gè)參數(shù),也可以定義在方法上

屬性名稱 備注
name 參數(shù)名
value 參數(shù)說(shuō)明
dataType 參數(shù)類型
paramType 表示參數(shù)放在哪里
header : 請(qǐng)求參數(shù)的獲取:@RequestHeader
query : 請(qǐng)求參數(shù)的獲?。篅RequestParam
path : 請(qǐng)求參數(shù)的獲?。篅PathVariable
body : 不常用
form : 不常用
defaultValue 參數(shù)的默認(rèn)值
required 參數(shù)是否必須傳

@ApiModel:用在類上,表示對(duì)類進(jìn)行說(shuō)明,用于實(shí)體類中的參數(shù)接收說(shuō)明

屬性名稱 備注
value 默認(rèn)為類的名稱
description 對(duì)該類的描述

@ApiModelProperty:在model類的屬性添加屬性說(shuō)明

屬性名稱 備注
value 屬性描述
name 屬性名稱
allowableValues 參數(shù)允許的值
dataType 數(shù)據(jù)類型
required 是否必填

@ApiResponses:包裝器:包含多個(gè)ApiResponse對(duì)象列表

屬性名稱 備注
value 多個(gè)ApiResponse配置

@ApiResponse:定義在@ApiResponses注解中,一般用于描述一個(gè)錯(cuò)誤的響應(yīng)信息

屬性名稱 備注
code 響應(yīng)碼
message 狀態(tài)碼對(duì)應(yīng)的響應(yīng)信息
response 默認(rèn)響應(yīng)類 Void
responseContainer 參考ApiOperation中配置

@ApiIgnore():用于類或者方法上,不被顯示在頁(yè)面上

總結(jié)

除上面之外有點(diǎn)值得注意的是,如果是上傳文件的話,需要把@ApiImplicitParam中的dataType屬性配置為_(kāi)_File否則在swagger中會(huì)顯示為文本框而不是上傳按鈕

如果需要項(xiàng)目代碼,可以去我的github中下載;具體代碼可以查看swagger目錄

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java由淺入深全面講解方法的使用

    Java由淺入深全面講解方法的使用

    方法,也稱函數(shù),如果想要重復(fù)一段或者多段代碼塊的使用,可以將這些代碼封裝成一個(gè)方法,方法具體表現(xiàn)為某種行為,使用方法可以提高代碼的復(fù)用性
    2022-04-04
  • springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用

    springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用

    這篇文章主要介紹了springcloud如何使用dubbo開(kāi)發(fā)rpc服務(wù)及調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 詳解java 中泛型中的類型擦除和橋方法

    詳解java 中泛型中的類型擦除和橋方法

    這篇文章主要介紹了詳解java 中泛型中的類型擦除和橋方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java系統(tǒng)運(yùn)行緩慢等問(wèn)題的排查思路

    Java系統(tǒng)運(yùn)行緩慢等問(wèn)題的排查思路

    這篇文章主要介紹了Java系統(tǒng)運(yùn)行緩慢等問(wèn)題的排查思路,讀者可以根據(jù)具體情況具體分析,從而解決問(wèn)題
    2021-04-04
  • Java SQL注入案例教程及html基礎(chǔ)入門

    Java SQL注入案例教程及html基礎(chǔ)入門

    這篇文章主要介紹了前端開(kāi)發(fā)每天必學(xué)之SQL及HTML入門基礎(chǔ)知識(shí),介紹了學(xué)習(xí)web前端開(kāi)發(fā)需要掌握的基礎(chǔ)技術(shù),感興趣的小伙伴們可以參考一下
    2021-07-07
  • 探討Java語(yǔ)言中那些修飾符

    探討Java語(yǔ)言中那些修飾符

    在java中常見(jiàn)的修飾符有:abstract(抽象的)、static(靜態(tài)的)、public(公共的)、protected(受保護(hù)的)、private(私有的)、synchronized(同步的)、native(本地的)、transient(暫時(shí)的)、volatile(易失的)、final(不可改變的)。對(duì)java語(yǔ)言修飾符感興趣的朋友一起看看吧
    2016-11-11
  • Maven和IntelliJ IDEA搭建多模塊微服務(wù)的實(shí)現(xiàn)

    Maven和IntelliJ IDEA搭建多模塊微服務(wù)的實(shí)現(xiàn)

    本文主要介紹了Maven和IntelliJ IDEA搭建多模塊微服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 深入解析HashMap的put方法

    深入解析HashMap的put方法

    在Java集合中,HashMap的重要性不言而喻,作為一種存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),它在日常開(kāi)發(fā)中有著非常多的應(yīng)用場(chǎng)景,也是面試中的高頻考點(diǎn),本篇文章就來(lái)分析一下HashMap集合中的put方法
    2022-01-01
  • spring mvc中直接注入的HttpServletRequst安全嗎

    spring mvc中直接注入的HttpServletRequst安全嗎

    這篇文章主要給大家介紹了關(guān)于spring mvc中直接注入的HttpServletRequst是不是安全的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-04-04
  • 淺談Java中Properties類的詳細(xì)使用

    淺談Java中Properties類的詳細(xì)使用

    properties類繼承自hashtable,通常和io流結(jié)合使用。它最突出的特點(diǎn)是將key/value作為配置屬性寫(xiě)入到配置文件中以實(shí)現(xiàn)配置持久化,或從配置文件中讀取這些屬性。它的這些配置文件的規(guī)范后綴名為".properties"。表示了一個(gè)持久的屬性集
    2021-06-06

最新評(píng)論