国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Springboot中集成Swagger2框架的方法

Springboot中集成Swagger2框架的方法

2021-03-03 14:13qq30739519 Java教程

這篇文章主要介紹了Springboot中集成Swagger2框架的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

摘要:在項目開發(fā)中,往往期望做到前后端分離,也就是后端開發(fā)人員往往需要輸出大量的服務接口,接口的提供方無論是是java還是php等語言,往往會要花費一定的精力去寫接口文檔,比如a接口的地址、需要傳遞參數(shù)情況、返回值的json數(shù)據(jù)格式以及每一個字段說明、當然還要考慮http請求頭、請求內(nèi)容等信息。隨著項目的進度快速高速的迭代,后端輸出的接口往往會面臨修改、修復等問題,那也意味著接口文檔也要進行相應的調(diào)整。接口文檔的維護度以及可讀性就大大下降。

既然接口文檔需要花費精力去維護,還要適當?shù)倪M行面對面交流溝通,我們何不想一個辦法,第一:可以不用寫接口文檔;第二:前端與后端溝通接口問題的時候,后端是否可以提供一個url,在這個url中羅列出所有可以調(diào)用的服務接口,并在每個服務接口中羅列出參數(shù)的說明,返回值的說明,第三:后端接口如果能模擬調(diào)用就所有問題都解決了。本文我們重點講解一下sringboot中集成swagger2框架。

1.1. 添加swagger2依賴

在項目的pom.xml文件中增加如下的依賴。

?
1
2
3
4
5
6
7
8
9
10
<dependency>
 <groupid>io.springfox</groupid>
 <artifactid>springfox-swagger2</artifactid>
 <version>2.7.0</version>
</dependency>
<dependency>
 <groupid>io.springfox</groupid>
 <artifactid>springfox-swagger-ui</artifactid>
 <version>2.7.0</version>
</dependency>

首先,我們需要建立一個啟動類,代碼如下:

?
1
2
3
4
5
6
@springbootapplication
public class application {
 public static void main(string[] args) {
 springapplication.run(application.class, args);
 }
}

然后在上述類的同級目錄中新建swagger2的配置類如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@configuration
@enableswagger2
public class swagger2 {
  @bean
  public docket createrestapi() {
    return new docket(documentationtype.swagger_2)
        .apiinfo(apiinfo())
        .select()
        .apis(requesthandlerselectors.basepackage("com.shareniu.web"))
        .paths(pathselectors.any())
        .build();
  }
  private apiinfo apiinfo() {
    return new apiinfobuilder()
        .title("跟著分享牛學習springboot源碼分析系列課程")
        .description("更多spring boot相關文章請關注分享牛的博客")
        .termsofserviceurl("http://www.shareniu.com/")
        .contact("牛牛")
        .license("copyright 2017-2018 分享牛")
        .version("1.0")
        .build();
  }
}

@configuration制定了spring要加載這個類,@enableswagger2注解要開啟swagger功能。

上述中的apiinfo最終都會展現(xiàn)在前端,我們使用了掃描包的方式配置配置,也就是requesthandlerselectors.basepackage。在這個包以及子包中的控制器最終都是生成api文檔。(除了被@apiignore注解指定的請求)。

1.2. 新增文檔說明

上述的類聲明之后,我們其實就可以直接調(diào)用了,但是為了增加文檔的可讀性,我們還是需要在接口中增加一些說明,我們先寫一個控制器如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@restcontroller
@requestmapping(value="/users")
public class usercontroller {
  static map<long, user> users = collections.synchronizedmap(new hashmap<long, user>());
  static {
   user user = new user();
   user.setage(18);
   user.setid(1l);
   user.setname("aa");
   users.put(1l, user);
  }
  @apioperation(value="獲取所有用戶列表", notes="")
  @requestmapping(value={""}, method=requestmethod.get)
  public list<user> getuserlist() {
    list<user> r = new arraylist<user>(users.values());
    return r;
  }
  @apioperation(value="創(chuàng)建新的用戶", notes="根據(jù)user對象創(chuàng)建用戶")
  @apiimplicitparam(name = "user", value = "用戶詳細實體user", required = true, datatype = "user")
  @requestmapping(value="", method=requestmethod.post)
  public string postuser(@requestbody user user) {
    users.put(user.getid(), user);
    return "success";
  }
  @apioperation(value="獲取用戶詳細信息", notes="根據(jù)url的id來獲取用戶詳細信息")
  @apiimplicitparam(name = "id", value = "用戶id", required = true, datatype = "long")
  @requestmapping(value="/{id}", method=requestmethod.get)
  public user getuser(@pathvariable long id) {
    return users.get(id);
  }
  @apioperation(value="更新用戶詳細信息", notes="根據(jù)url的id來指定更新對象")
  @apiimplicitparams({
      @apiimplicitparam(name = "id", value = "用戶id", required = true, datatype = "long"),
      @apiimplicitparam(name = "user", value = "用戶詳細實體user", required = true, datatype = "user")
  })
  @requestmapping(value="/{id}", method=requestmethod.put)
  public string putuser(@pathvariable long id, @requestbody user user) {
    user u = users.get(id);
    u.setname(user.getname());
    u.setage(user.getage());
    users.put(id, u);
    return "success";
  }
  @apioperation(value="刪除已存在的用戶", notes="根據(jù)url的id來指定刪除對象")
  @apiimplicitparam(name = "id", value = "用戶id", required = true, datatype = "long")
  @requestmapping(value="/{id}", method=requestmethod.delete)
  public string deleteuser(@pathvariable long id) {
    users.remove(id);
    return "success";
  }
}

 @apioperation:用來描述該接口的作用。可以通過該注解說明接口的職責、返回頭信息、方法的請求方式("get", "head", "post", "put", "delete", "options" and "patch")、協(xié)議( http, https, ws, wss)、http狀態(tài)碼。
@apiimplicitparam:用來給參數(shù)增加說明。可以設置參數(shù)的名稱、是否是必填項、參數(shù)的描述信息、是否只讀等。

上述代碼提交之后,啟動springboot,訪問,如下圖所示: 

Springboot中集成Swagger2框架的方法

上圖分為兩個部分,上部分是通過swagger2類配置出來的,下半部分是usercontroller類中的接口文檔。
這里我們以/user為例進行說明:

點擊/user如下圖所示: 

Springboot中集成Swagger2框架的方法

上圖黃色的地方表示,該接口返回的樣例數(shù)據(jù)。也就是user的數(shù)據(jù)結構。response content type:接口返回的頭信息。點擊try it out。如下所示: 

Springboot中集成Swagger2框架的方法

該接口返回的baody、code碼、響應頭已經(jīng)成功返回了。

總結

以上所述是小編給大家介紹的springboot中集成swagger2框架的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

原文鏈接:http://blog.csdn.net/qq_30739519/article/details/78779317

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: а√天堂资源中文最新版地址 | 91欧美激情一区二区三区成人 | 欧美精品成人 | 日韩av免费在线观看 | 欧美成人免费在线视频 | 精品久久久久久久久久久下田 | 日韩国产欧美一区 | 人人干天天干 | 国内精品视频在线观看 | 亚洲一区二区三区久久久 | 成人高清视频在线观看 | 成人免费视频视频在线观看 免费 | 国产精品久久久久久久午夜 | 国产一区二区综合 | 成人av在线网站 | 国产精品成av人在线视午夜片 | 亚洲狠狠爱 | 中文字幕高清av | 91一区二区在线 | 久久久久久久久久久久久av | 涩涩视频在线看 | 欧美一级免费 | 久久精品亚洲精品 | 国产偷窥老熟盗摄视频 | av天天干 | 免费污视频在线 | 伊人网在线视频免费观看 | 精品国产不卡一区二区三区 | 天天操天天干天天插 | 久久久精品日韩 | 成人av在线网 | 亚洲精品视频一区 | 亚洲精品欧美一区二区三区 | 男女免费视频 | 免费观看电视在线高清视频 | 亚洲精品欧美精品 | 国产成人精品免费 | 日韩精品一区二区三区在线播放 | 亚洲男人天堂2023 | 97视频久久久 | 欧美日韩亚洲系列 |