自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

抱怨Swagger不好用?好吧我換一個好用的

開發(fā) 前端
最近前端們一直反映Swagger看接口信息非常不爽,于是我花了倆小時把Swagger干掉,用上了傳說中更好用的YApi。今天就簡單分享一下心得體會。

[[398313]]

最近前端們一直反映Swagger看接口信息非常不爽,于是我花了倆小時把Swagger干掉,用上了傳說中更好用的YApi。今天就簡單分享一下心得體會。

Swagger與YApi

其實我個人認為Swagger也沒啥不好的,后端集成起來方便快捷,就是UI不行,而且對于Java來說代碼的侵入性太高了。

swagger界面

YApi除了解決了這些問題之外還具有權(quán)限管理、團隊協(xié)作、自動化測試、支持OpenApi規(guī)范等等。

YApi界面

YApi區(qū)別于Swagger的最大不同就是YApi需要導入文檔(雖然它也可以通過Swagger輪詢導入),而Swagger可以自動發(fā)現(xiàn)。

安裝這里就不細說了,官方文檔說的很清楚。你可以選擇命令行部署、可視化部署,也能使用Docker部署。

推薦內(nèi)網(wǎng)部署,畢竟大部分API文檔比較敏感。

文檔注釋

YApi的文檔解析基于Java注釋規(guī)范,沒有代碼侵入!但是這就要求我們要按照Javadoc的規(guī)范進行書寫文檔注釋,這是使用YApi的前提。一個接口文檔分為以下幾個部分。

接口類注釋

接口類的注釋,下面是基本的格式。第一行會作為菜單展示,盡量短小精悍;第二行是接口的描述,用來描述接口的作用和細節(jié)。

  1. /** 
  2.  * 接口分類名稱 
  3.  * <p> 
  4.  * 接口備注/描述 
  5.  * 
  6.  * @author felord 
  7.  * @since v1.0 
  8.  */ 
  9. @RestController 
  10. @RequestMapping("/foo"
  11. public class FooController { 
  12. // 省略 

還有@module、@copyright什么的其實可以不寫。

參數(shù)注釋

入?yún)⒑统鰠⒌淖⑨?,配合JSR-303有奇效哦。

  1. /** 
  2.  * 賬戶基本信息 
  3.  *  
  4.  * @author felord 
  5.  * @since v1.0 
  6.  */ 
  7. @Data 
  8. public class UserInfoDetail { 
  9.  
  10.     /** 
  11.      * 用戶名 
  12.      * 
  13.      * 配合JSR303注解聲明此字段的約束方式【必填】 
  14.      */ 
  15.     @NotBlank 
  16.     private String username; 
  17.     /** 
  18.      * 真實姓名 
  19.      */ 
  20.     private String realName; 
  21.     /** 
  22.      * 手機號碼 
  23.      */ 
  24.     private String phoneNumber; 
  25.     /** 
  26.      * 性別 -1 未知 0 女性 1 男性 
  27.      * 
  28.      * 使用@see來說明該字段的取值來源 
  29.      * @see GenderType#value() 
  30.      */ 
  31.     private Integer gender; 
  32.     /** 
  33.      * 昵稱 
  34.      */ 
  35.     private String nickName; 
  36.     /** 
  37.      * 微信號 
  38.      * 使用{@code Deprecated} 表示字典將來會廢棄 
  39.      */ 
  40.     @Deprecated 
  41.     private String wechatAccount; 
  42.     /** 
  43.      * 電子信箱 
  44.      */ 
  45.     private String email; 

接口方法注釋

入?yún)閺碗s對象的話注釋用@link引用,@RequestBody會指定Content-Type為application/json。

  1. /** 
  2.  * 新增用戶信息 
  3.  * 
  4.  * @param userInfoDetail 用戶信息參數(shù) {@link UserInfoDetail} 
  5.  * @return {@link Boolean} 
  6.  */ 
  7. @PostMapping("/bar"
  8. public boolean detail(@RequestBody UserInfoDetail userInfoDetail) { 
  9.     return true

Post請求對應的樣式

如果參數(shù)是原始類型類型或者String,可以這樣寫,@RequestParam有奇效。

  1. /** 
  2.  * 獲取用戶信息 
  3.  * 
  4.  * @param name 姓名 
  5.  * @param age  年齡 
  6.  * @return {@link UserInfoDetail} 
  7.  */ 
  8. @GetMapping("/sam"
  9. public UserInfoDetail detailBySamples(@RequestParam String nameInteger age) { 
  10.     return new UserInfoDetail(); 

Get請求對應的樣式

導入文檔

YApi支持Swagger、Postman、JSON等方式導入文檔。不過我個人更喜歡使用插件導入,Intellij IDEA中推薦使用easy-yapi。導入的時候定位到對應的Controller,使用快捷鍵Alt+Ins呼出快捷菜單。

呼出快捷菜單

選擇Export Yapi ,首次選擇會讓你輸入YApi的服務器地址,還會讓你輸入對應項目的token字符串。

token 字符串

 

依次填入后,就會解析生成文檔并同步到Y(jié)Api服務器了,結(jié)果就是上面截圖中的樣子。然后你可以配置權(quán)限分配給組員使用了,如果有文檔更新重復上面的步驟即可,YApi提供了幾種策略,你可以選擇覆蓋也可以選擇不覆蓋。YApi提供了比Swagger更豐富的功能,具體我還在探索中,如果有什么好玩的,會在后面分享給大家,還請多多關(guān)注。

本文轉(zhuǎn)載自微信公眾號「碼農(nóng)小胖哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)小胖哥公眾號。

 

責任編輯:武曉燕 來源: 碼農(nóng)小胖哥
相關(guān)推薦

2023-10-25 16:36:06

數(shù)字化轉(zhuǎn)型IT系統(tǒng)

2025-01-20 08:10:00

AI模型研究

2021-05-13 09:27:13

JavaThreadLocal線程

2014-10-20 10:53:13

ArubaWi-Fi無線網(wǎng)絡

2023-03-13 00:21:21

調(diào)試器斷點開發(fā)者

2019-09-12 10:10:10

Vim編輯器代碼

2020-04-22 10:01:26

Vim編輯器代碼

2014-02-21 10:20:40

2019-05-09 18:24:28

Windows 10Windows操作系統(tǒng)

2021-02-17 21:33:39

路由器產(chǎn)品網(wǎng)絡

2019-10-15 09:46:46

機器學習人工智能計算機

2014-11-04 10:15:28

Android

2021-07-28 06:46:25

Windows 操作系統(tǒng)微軟

2021-07-28 14:32:03

Windows微軟

2020-10-19 08:14:58

Windows10

2023-07-14 12:02:29

2019-10-31 16:10:48

Windows 10Windows技巧

2021-08-16 13:44:37

手機電子日本

2020-03-19 14:30:13

Windows觸摸板MacBook

2018-07-23 12:56:07

微信通信朋友圈
點贊
收藏

51CTO技術(shù)棧公眾號