最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Swagger2實(shí)例方法

 更新時(shí)間:2019年06月20日 14:32:58   投稿:laozhang  
在本篇文章里小編給大家整合了關(guān)于SpringBoot整合Swagger2的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。

在進(jìn)行軟件開發(fā)的時(shí)候免不了要寫接口文檔,這些文檔需要明確寫出接口的類型、請求的URL、傳參和返回值格式等信息,用于和前端交互或者提供給測試進(jìn)行接口測試。但是手寫文檔一方面帶給我們很大的工作量,另一方面如果接口有變更則需要頻繁修改并且發(fā)給相關(guān)的人,無形中增加了工作量。小編為大家介紹一個(gè)生成文檔的工具Swagger,上手簡單,學(xué)習(xí)成本低,非常適合開發(fā)SpringBoot項(xiàng)目,現(xiàn)在就跟著小編一起學(xué)習(xí)吧。

首先需要在pom文件中加入swagger2的依賴,依賴的jar包如下圖所示。

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.8.0</version>
</dependency>
<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger-ui</artifactId>
 <version>2.8.0</version>
</dependency>

編寫Swagger配置類Swagger2Config,在類上增加@Configuration和@EnableSwagger2注解,表明這是一個(gè)配置類,同時(shí)開啟Swagger。如下的信息可以根據(jù)具體情況修改。

@Bean
public Docket api() {
  return new Docket(DocumentationType.SWAGGER_2)
      .apiInfo(apiInfo())
      .select()
      // 自行修改為自己的包路徑
      .apis(RequestHandlerSelectors.basePackage("com.spring.jpa.user"))
      .paths(PathSelectors.any())
      .build();
}

private ApiInfo apiInfo() {
  return new ApiInfoBuilder()
      .title("swagger-api文檔")
      .description("用戶信息相關(guān)")
      //服務(wù)條款網(wǎng)址
      .termsOfServiceUrl("https://baidu.com")
      .version("1.0")
      .contact(new Contact("NWSL", "http://baidu.com", "111111@qq.com"))
      .build();
}

 

接下來我們需要在Controller層添加注解,@Api(value="/test1", tags="測試用戶接口模塊"), @Api這個(gè)注解是用在請求的類上,表示對類的說明,其中tags="說明該類的作用,可以在UI界面上看到的注解",value="該參數(shù)沒什么意義,在UI界面上也看到,所以不需要配置"。該注解的使用如下圖所示。

 

接下來我們需要在方法上添加注解了,如下所示,@ApiOperation、@ApiImplicitParams、@ApiImplicitParam的作用如下圖所示。@ApiResponses:用在請求的方法上,表示一組響@ApiResponse:用在@ApiResponses中,一般用于表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息。

在方法中的使用如下圖所示。

@ApiOperation(value="添加用戶信息", notes = "添加用戶信息")
@ApiImplicitParams({
    @ApiImplicitParam(name = "name", value = "用戶姓名", required = true, dataType = "String",paramType = "query"),
    @ApiImplicitParam(name = "age", value = "用戶年齡", required = true,paramType = "query")
})

注意如果是Integer類型,那dataType = "Integer"就可以省略了,寫上了反而在生成的文檔調(diào)用的時(shí)候出錯(cuò)。

接下來我們介紹傳實(shí)體類參數(shù)的注解怎么寫,要使用到@ApiModel、@ApiModelProperty,具體的用法如下圖所示。在接收參數(shù)的實(shí)體類上我們需要添加這兩個(gè)注解,如下圖所示。

接口上注解寫完之后,我們啟動服務(wù),然后打開swagger的UI頁面,注意8091端口是我本機(jī)服務(wù)啟動的端口,請求的地址如下圖所示。我們可以看到每個(gè)Controller類都生成了文檔,UserController我們增加了類的注釋。

接下來我們測試UserController中的接口,如下圖所示,生成了UserController所有的接口文檔,我們首先來看添加用戶接口,如下圖所示,為什么Integer類型的age字段,在生成的接口文檔中參數(shù)類型變成了ref呢?上文提到過的,在寫注解的時(shí)候,dataType = "Integer"要省略掉,不然會出現(xiàn)這個(gè)問題。正確的如下所示,可以看到age為Integer類型了。

我們可以看到在接口的右側(cè)有Try it out,點(diǎn)擊該按鈕進(jìn)入到調(diào)用頁面。在如下的頁面填寫完參數(shù)之后執(zhí)行Execute即可,還是age參數(shù)ref的問題,此時(shí)執(zhí)行會提示錯(cuò)誤,要把注釋中的Integer類型去掉,在執(zhí)行即可。

接下來我們看一個(gè)Get請求,這個(gè)請求不需要傳參,直接執(zhí)行即可,結(jié)果如下圖所示。我們可以看到Swagger生成的restful形式的接口文檔,非常方便調(diào)試。

接下來我們執(zhí)行update的接口,這是上面我們用實(shí)體類接收參數(shù)的方法,可以看到參數(shù)的例子,我們修改完參數(shù)值后執(zhí)行即可。以上swagger2與springboot就集成完了。

相關(guān)文章

  • SpringBoot集成P6Spy實(shí)現(xiàn)SQL日志的記錄詳解

    SpringBoot集成P6Spy實(shí)現(xiàn)SQL日志的記錄詳解

    P6Spy是一個(gè)框架,它可以無縫地?cái)r截和記錄數(shù)據(jù)庫活動,而無需更改現(xiàn)有應(yīng)用程序的代碼。一般我們使用的比較多的是使用p6spy打印我們最后執(zhí)行的sql語句
    2022-11-11
  • Springboot通過run啟動web應(yīng)用的方法

    Springboot通過run啟動web應(yīng)用的方法

    這篇文章主要介紹了Springboot通過run啟動web應(yīng)用的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • JAVA構(gòu)造方法/構(gòu)造器以及this使用方式

    JAVA構(gòu)造方法/構(gòu)造器以及this使用方式

    這篇文章主要介紹了JAVA構(gòu)造方法/構(gòu)造器以及this使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java之springcloud Sentinel案例講解

    Java之springcloud Sentinel案例講解

    這篇文章主要介紹了Java之springcloud Sentinel案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java8函數(shù)式接口UnaryOperator用法示例

    Java8函數(shù)式接口UnaryOperator用法示例

    這篇文章主要介紹了Java8函數(shù)式接口UnaryOperator用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java日常記錄之查看Maven本地倉庫的位置

    Java日常記錄之查看Maven本地倉庫的位置

    這篇文章主要介紹了Maven本地倉庫的用途和配置方法,它提供了查看、修改本地倉庫路徑的步驟,包括檢查settings.xml文件、使用Maven命令和查看輸出日志,需要的朋友可以參考下
    2024-12-12
  • Java讀寫Excel實(shí)例分享

    Java讀寫Excel實(shí)例分享

    本文主要分享了Java讀寫Excel的實(shí)例代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • mybatis如何實(shí)現(xiàn)繼承映射

    mybatis如何實(shí)現(xiàn)繼承映射

    這篇文章主要介紹了mybatis如何實(shí)現(xiàn)繼承映射的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 淺談Java中對類的主動引用和被動引用

    淺談Java中對類的主動引用和被動引用

    這篇文章主要介紹了淺談Java中對類的主動引用和被動引用,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Spring Boot 統(tǒng)一數(shù)據(jù)返回格式的解決方案

    Spring Boot 統(tǒng)一數(shù)據(jù)返回格式的解決方案

    統(tǒng)?的數(shù)據(jù)返回格式使? @ControllerAdvice 和 ResponseBodyAdvice 的?式實(shí)現(xiàn),下面給大家分享Spring Boot 統(tǒng)一數(shù)據(jù)返回格式的解決方案,感興趣的朋友一起看看吧
    2024-03-03

最新評論

澳门| 贡嘎县| 介休市| 启东市| 乾安县| 长宁区| 渭南市| 桃源县| 即墨市| 仁怀市| 马鞍山市| 甘泉县| 乌兰浩特市| 灌南县| 凤翔县| 潜山县| 上饶市| 弋阳县| 沂南县| 锦屏县| 郴州市| 合川市| 漳浦县| 辽中县| 巴青县| 商水县| 临清市| 电白县| 嘉荫县| 五台县| 大英县| 富裕县| 县级市| 巴南区| 兴隆县| 乐业县| 南岸区| 布尔津县| 博客| 淅川县| 乐清市|