溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swagger與YApi的示例分析

發(fā)布時(shí)間:2021-09-17 10:18:06 來源:億速云 閱讀:668 作者:柒染 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Swagger與YApi的示例分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Swagger與YApi的示例分析

最近前端們一直反映Swagger看接口信息非常不爽,于是我花了倆小時(shí)把Swagger干掉,用上了傳說中更好用的YApi。

Swagger與YApi

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

Swagger與YApi的示例分析

swagger界面

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

Swagger與YApi的示例分析

YApi界面

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

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

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

文檔注釋

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

接口類注釋

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

/**  * 接口分類名稱  * <p>  * 接口備注/描述  *  * @author felord  * @since v1.0  */ @RestController @RequestMapping("/foo") public class FooController { // 省略 }

Swagger與YApi的示例分析

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

參數(shù)注釋

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

/**  * 賬戶基本信息  *   * @author felord  * @since v1.0  */ @Data public class UserInfoDetail {      /**      * 用戶名      *      * 配合JSR303注解聲明此字段的約束方式【必填】      */     @NotBlank     private String username;     /**      * 真實(shí)姓名      */     private String realName;     /**      * 手機(jī)號(hào)碼      */     private String phoneNumber;     /**      * 性別 -1 未知 0 女性 1 男性      *      * 使用@see來說明該字段的取值來源      * @see GenderType#value()      */     private Integer gender;     /**      * 昵稱      */     private String nickName;     /**      * 微信號(hào)      * 使用{@code Deprecated} 表示字典將來會(huì)廢棄      */     @Deprecated     private String wechatAccount;     /**      * 電子信箱      */     private String email; }

接口方法注釋

入?yún)閺?fù)雜對(duì)象的話注釋用@link引用,@RequestBody會(huì)指定Content-Type為application/json。

/**  * 新增用戶信息  *  * @param userInfoDetail 用戶信息參數(shù) {@link UserInfoDetail}  * @return {@link Boolean}  */ @PostMapping("/bar") public boolean detail(@RequestBody UserInfoDetail userInfoDetail) {     return true; }

Swagger與YApi的示例分析

Post請(qǐng)求對(duì)應(yīng)的樣式

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

/**  * 獲取用戶信息  *  * @param name 姓名  * @param age  年齡  * @return {@link UserInfoDetail}  */ @GetMapping("/sam") public UserInfoDetail detailBySamples(@RequestParam String name, Integer age) {     return new UserInfoDetail(); }

Swagger與YApi的示例分析

Get請(qǐng)求對(duì)應(yīng)的樣式

導(dǎo)入文檔

YApi支持Swagger、Postman、JSON等方式導(dǎo)入文檔。不過我個(gè)人更喜歡使用插件導(dǎo)入,Intellij  IDEA中推薦使用easy-yapi。導(dǎo)入的時(shí)候定位到對(duì)應(yīng)的Controller,使用快捷鍵Alt+Ins呼出快捷菜單。

Swagger與YApi的示例分析

呼出快捷菜單

選擇Export Yapi ,首次選擇會(huì)讓你輸入YApi的服務(wù)器地址,還會(huì)讓你輸入對(duì)應(yīng)項(xiàng)目的token字符串。

Swagger與YApi的示例分析

token 字符串

依次填入后,就會(huì)解析生成文檔并同步到Y(jié)Api服務(wù)器了,結(jié)果就是上面截圖中的樣子。然后你可以配置權(quán)限分配給組員使用了,如果有文檔更新重復(fù)上面的步驟即可,YApi提供了幾種策略,你可以選擇覆蓋也可以選擇不覆蓋。

關(guān)于Swagger與YApi的示例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI