91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot2.x集成swagger的方法示例

發布時間:2020-09-27 02:23:44 來源:腳本之家 閱讀:249 作者:荔枝 欄目:編程語言

集成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 {
  /**
   * 創建一個Docket對象
   * 調用select()方法,
   * 生成ApiSelectorBuilder對象實例,該對象負責定義外漏的API入口
   * 通過使用RequestHandlerSelectors和PathSelectors來提供Predicate,在此我們使用any()方法,將所有API都通過Swagger進行文檔管理
   * @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()
        //標題
        .title("Spring Boot中使用Swagger2構建RESTful APIs")
        //簡介
        .description("")
        //服務條款
        .termsOfServiceUrl("")
        //作者個人信息
        .contact(new Contact("chenguoyu","","chenguoyu_sir@163.com"))
        //版本
        .version("1.0")
        .build();
  }
}

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

配置靜態訪問資源

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

到這里為止swagger就已經配置完了,可以啟動項目,然后訪問如下鏈接即可http://localhost:9000/swagger...

端口號applicationContext中設置的端口號。

集成swagger-bootstrap-ui

由于個人感覺原生的swagger-ui不太好看,網上提供了swagger-bootstrap-ui。

pom依賴

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

配置靜態訪問資源

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

  }
}

這時只需要訪問以下鏈接即可http://localhost:9000/doc.html

swagger常用注解

@Api:用在類上,標志此類是Swagger資源

屬性名稱 備注
value 該參數沒什么意義,在UI界面上不顯示,所以不用配置
tags 說明該類的作用,參數是個數組,可以填多個
description 對api資源的描述

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

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

@ApiImplicitParams:包裝器:包含多個ApiImplicitParam對象列表

屬性名稱 備注
value 多個ApiImplicitParam配置

@ApiParam:用于Controller中方法的參數說明

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

@ApiImplicitParam:定義在@ApiImplicitParams注解中,定義單個參數詳細信息,如果只有一個參數,也可以定義在方法上

屬性名稱 備注
name 參數名
value 參數說明
dataType 參數類型
paramType 表示參數放在哪里
header : 請求參數的獲取:@RequestHeader
query : 請求參數的獲取:@RequestParam
path : 請求參數的獲取:@PathVariable
body : 不常用
form : 不常用
defaultValue 參數的默認值
required 參數是否必須傳

@ApiModel:用在類上,表示對類進行說明,用于實體類中的參數接收說明

屬性名稱 備注
value 默認為類的名稱
description 對該類的描述

@ApiModelProperty:在model類的屬性添加屬性說明

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

@ApiResponses:包裝器:包含多個ApiResponse對象列表

屬性名稱 備注
value 多個ApiResponse配置

@ApiResponse:定義在@ApiResponses注解中,一般用于描述一個錯誤的響應信息

屬性名稱 備注
code 響應碼
message 狀態碼對應的響應信息
response 默認響應類 Void
responseContainer 參考ApiOperation中配置

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

總結

除上面之外有點值得注意的是,如果是上傳文件的話,需要把@ApiImplicitParam中的dataType屬性配置為__File否則在swagger中會顯示為文本框而不是上傳按鈕

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昆明市| 日照市| 南和县| 隆林| 资阳市| 鄂伦春自治旗| 峡江县| 分宜县| 无极县| 孟津县| 资阳市| 民丰县| 墨竹工卡县| 白山市| 永康市| 德安县| 昌都县| 西宁市| 金沙县| 华宁县| 贵溪市| 葫芦岛市| 多伦县| 萨迦县| 自治县| 吴堡县| 丹巴县| 南丰县| 保定市| 饶平县| 双辽市| 广安市| 扎鲁特旗| 布拖县| 宝坻区| 神农架林区| 瓦房店市| 乐至县| 斗六市| 古交市| 太谷县|