亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解spring cloud整合Swagger2構(gòu)建RESTful服務(wù)的APIs

 更新時(shí)間:2018年01月25日 11:13:34   作者:牛奮lch  
這篇文章主要介紹了詳解spring cloud整合Swagger2構(gòu)建RESTful服務(wù)的APIs,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前言

在前面的博客中,我們將服務(wù)注冊(cè)到了Eureka上,可以從Eureka的UI界面中,看到有哪些服務(wù)已經(jīng)注冊(cè)到了Eureka Server上,但是,如果我們想查看當(dāng)前服務(wù)提供了哪些RESTful接口方法的話(huà),就無(wú)從獲取了,傳統(tǒng)的方法是梳理一篇服務(wù)的接口文檔來(lái)供開(kāi)發(fā)人員之間來(lái)進(jìn)行交流,這種情況下,很多時(shí)候,會(huì)造成文檔和代碼的不一致性,比如說(shuō)代碼改了,但是接口文檔沒(méi)有改等問(wèn)題,而Swagger2則給我們提供了一套完美的解決方案,下面,我們來(lái)看看Swagger2是如何來(lái)解決問(wèn)題的。

一、引入Swagger2依賴(lài)的jar包

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

二、初始化Swagger2的配置

@Configuration 
@EnableSwagger2 // 啟用Swagger2 
public class Swagger2 { 
 
  @Bean 
  public Docket createRestApi() {// 創(chuàng)建API基本信息 
    return new Docket(DocumentationType.SWAGGER_2) 
        .apiInfo(apiInfo()) 
        .select() 
        .apis(RequestHandlerSelectors.basePackage("com.chhliu.jpa"))// 掃描該包下的所有需要在Swagger中展示的API,@ApiIgnore注解標(biāo)注的除外 
        .paths(PathSelectors.any()) 
        .build(); 
  } 
 
  private ApiInfo apiInfo() {// 創(chuàng)建API的基本信息,這些信息會(huì)在Swagger UI中進(jìn)行顯示 
    return new ApiInfoBuilder() 
        .title("Spring Boot中使用Swagger2構(gòu)建RESTful APIs")// API 標(biāo)題 
        .description("rdcloud-jpa提供的RESTful APIs")// API描述 
        .contact("chhliu@")// 聯(lián)系人 
        .version("1.0")// 版本號(hào) 
        .build(); 
  } 
 
} 

注:該配置類(lèi)需要在Application同級(jí)目錄下創(chuàng)建,在項(xiàng)目啟動(dòng)的時(shí)候,就初始化該配置類(lèi)

三、完善API文檔信息

public interface SonarControllerI { 
  @ApiOperation(value="獲取項(xiàng)目組Sonar對(duì)應(yīng)的Url信息", notes="根據(jù)id獲取項(xiàng)目組Sonar對(duì)應(yīng)的Url信息")// 使用該注解描述接口方法信息 
  @ApiImplicitParams({ 
      @ApiImplicitParam(name = "id", value = "SonarUrl表ID", required = true, dataType = "Long", paramType="path") 
  })// 使用該注解描述方法參數(shù)信息,此處需要注意的是paramType參數(shù),需要配置成path,否則在UI中訪問(wèn)接口方法時(shí),會(huì)報(bào)錯(cuò) 
  @GetMapping("/get/{id}") 
  SonarUrl get(@PathVariable Long id); 
   
  @ApiOperation(value="獲取項(xiàng)目組Sonar對(duì)應(yīng)的所有Url信息") 
  @GetMapping("/get/all") 
  List<SonarUrl> getAll(); 
} 

注:paramType表示參數(shù)的類(lèi)型,可選的值為"path","body","query","header","form"

四、完善返回類(lèi)型信息

@Entity(name = "SONAR_URL") 
public class SonarUrl implements Serializable { 
 
  /** 
   * 
   */ 
  private static final long serialVersionUID = 1L; 
  @ApiModelProperty(value="主鍵", hidden=false, notes="主鍵,隱藏", required=true, dataType="Long")// 使用該注解描述屬性信息,當(dāng)hidden=true時(shí),該屬性不會(huì)在api中顯示 
  @Id 
  @GeneratedValue(strategy = GenerationType.AUTO) 
  private Long id; 
   
  @ApiModelProperty(value="URL鏈接地址") 
  @Column(name="URL") 
  private String url; 
   
  @ApiModelProperty(value="項(xiàng)目組") 
  @Column(name="TEAM") 
  private String team; 
 
  @ApiModelProperty(value="部門(mén)") 
  @Column(name="DEPARTMENT") 
  private String department; 
    ……省略getter,setter方法…… 
 } 

五、啟動(dòng)應(yīng)用

1、在瀏覽器中輸入:http://localhost:7622/swagger-ui.html

2、結(jié)果如下:

六、API文檔訪問(wèn)與測(cè)試

Swagger除了提供API接口查看的功能外,還提供了調(diào)試測(cè)試功能


測(cè)試結(jié)果如下:


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

相關(guān)文章

  • java類(lèi)加載器和類(lèi)反射使用示例

    java類(lèi)加載器和類(lèi)反射使用示例

    這篇文章主要介紹了java類(lèi)加載器和類(lèi)反射使用示例,需要的朋友可以參考下
    2014-03-03
  • springboot使用dubbo和zookeeper代碼實(shí)例

    springboot使用dubbo和zookeeper代碼實(shí)例

    這篇文章主要介紹了springboot使用dubbo和zookeeper代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • spring boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面(推薦

    spring boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面(推薦

    這篇文章主要介紹了spring-boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面,需要的朋友可以參考下
    2018-12-12
  • Java異常處理try?catch的基本用法

    Java異常處理try?catch的基本用法

    try就像一個(gè)網(wǎng),把try{}里面的代碼所拋出的異常都網(wǎng)住,然后把異常交給catch{}里面的代碼去處理。最后執(zhí)行finally之中的代碼。無(wú)論try中代碼有沒(méi)有異常,也無(wú)論catch是否將異常捕獲到,finally中的代碼都一定會(huì)被執(zhí)行。
    2021-12-12
  • SpringBoot解決跨域問(wèn)題小結(jié)

    SpringBoot解決跨域問(wèn)題小結(jié)

    在現(xiàn)代Web應(yīng)用中,由于安全性和隱私的考慮,瀏覽器限制了從一個(gè)域向另一個(gè)域發(fā)起的跨域HTTP請(qǐng)求,Spring?Boot提供了多種方式來(lái)處理跨域請(qǐng)求,本文將介紹其中的幾種方法,感興趣的朋友一起看看吧
    2023-12-12
  • 關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問(wèn)題

    關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問(wèn)題

    這篇文章主要介紹了關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問(wèn)題,雪花算法生成的ID傳輸?shù)角岸藭r(shí),會(huì)出現(xiàn)后三位精度丟失,本文提供了解決思路,需要的朋友可以參考下
    2023-03-03
  • Java后臺(tái)實(shí)現(xiàn)微信支付和微信退款

    Java后臺(tái)實(shí)現(xiàn)微信支付和微信退款

    這篇文章主要介紹了Java后臺(tái)實(shí)現(xiàn)微信支付和微信退款,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java使用FileInputStream流讀取文件示例詳解

    Java使用FileInputStream流讀取文件示例詳解

    這篇文章主要介紹了Java使用FileInputStream流讀取文件示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java Date類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Date類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在JDK1.0中,Date類(lèi)是唯一的一個(gè)代表時(shí)間的類(lèi),但是由于Date類(lèi)不便于實(shí)現(xiàn)國(guó)際化,所以從JDK1.1版本開(kāi)始,推薦使用Calendar類(lèi)進(jìn)行時(shí)間和日期處理。這里簡(jiǎn)單介紹一下Date類(lèi)的使用,需要的朋友可以參考下
    2017-05-05
  • java簡(jiǎn)單坦克大戰(zhàn)制作代碼

    java簡(jiǎn)單坦克大戰(zhàn)制作代碼

    這篇文章主要介紹了java簡(jiǎn)單坦克大戰(zhàn)制作代碼,利用Java語(yǔ)言中的集合、Swing、線(xiàn)程等知識(shí)點(diǎn)編寫(xiě)一個(gè)坦克大戰(zhàn)游戲,需要的朋友可以參考下
    2016-07-07

最新評(píng)論