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

idea同步y(tǒng)api插件的詳細(xì)步驟

 更新時(shí)間:2024年04月28日 11:01:19   作者:七夜琉璃  
yapi是一個(gè)很好的接口文檔維護(hù)工具,其swagger功能,可將接口信息同步到y(tǒng)api平臺上,這篇文章主要介紹了idea同步y(tǒng)api插件,需要的朋友可以參考下

1、前言

yapi是一個(gè)很好的接口文檔維護(hù)工具,其swagger功能,可將接口信息同步到y(tǒng)api平臺上,但是swagger的編寫,大量入侵代碼,也加大了開發(fā)工作量,目前調(diào)研了idea集成yapi同步工具,無需嵌入式編寫入侵代碼,根據(jù)javadoc備注即可將接口信息同步到y(tǒng)api同臺上

2、idea同步y(tǒng)api平臺工具

Idea支持將接口文檔同步到y(tǒng)api目前找到三個(gè),easyapi、YapiUpload、idea yapi

  • easyapi:同步接口信息到postman以及yapi平臺上,但是同步y(tǒng)api的不支持多模塊同步;
  • YapiUpload:同步y(tǒng)api的配置需要寫配置文件,不利于維護(hù);
  • idea yapi:是基于YapiUpload的二次開發(fā),將原有xml配置方式改為 Setting 中配置,并配置持久化,將原本上傳的數(shù)據(jù)類型做了優(yōu)化,上傳后數(shù)據(jù)類型為js的數(shù)據(jù)類型。

綜上優(yōu)缺點(diǎn),可采用idea yapi,如果有特殊需求可安裝easyapi同步到postman進(jìn)行接口調(diào)試

3、idea-yapi安裝步驟

3.1、安裝idea-yapi

在idea-Preferences-Plugins中搜索idea-yapi,安裝,并重啟idea

3.2、配置idea-yapi

在idea-Preferences-Other Setting中找到Y(jié)apiSetting
配置說明如下:

如果你是項(xiàng)目只是同步dubbo/api,采用如下配置

{
  "isSingle": true,
  "singleConfig": {
    "projectToken": "yapi平臺的項(xiàng)目token地址",
    "projectId": "yapi平臺的項(xiàng)目id",
    "yApiUrl": "yapi平臺平臺地址",
    "menu": "同步到的接口的目錄",
    "projectType": "你的接口類型或者dubbo"
  },
  "multipleConfig": {
    "api": {
      "projectToken": "",
      "projectId": "",
      "yApiUrl": "",
      "menu": "",
      "projectType": ""
    },
    "api": {
      "projectToken": "",
      "projectId": "",
      "yApiUrl": "",
      "menu": "",
      "projectType": ""
    }
  }
}

如果你是項(xiàng)目即同步dubbo又有api,采用如下配置

{
  "isSingle": false,
  "singleConfig": {
    "projectToken": "",
    "projectId": "",
    "yApiUrl": "",
    "menu": "",
    "projectType": ""
  },
  "multipleConfig": {
    "接口所在包名稱: {
       "projectToken": "yapi平臺的項(xiàng)目token地址",
       "projectId": "yapi平臺的項(xiàng)目id",
       "yApiUrl": "yapi平臺平臺地址",
       "menu": "api接口文檔",
        "projectType": "api"
    },
    "dubbo所在包名稱": {
      "projectToken": "yapi平臺的項(xiàng)目token地址",
       "projectId": "yapi平臺的項(xiàng)目id",
       "yApiUrl": "yapi平臺平臺地址",
       "menu": "dubbo文檔",
        "projectType": "dubbo"
    }
  }
}

備注:查找token以及項(xiàng)目id的目錄

3.3、同步接口或者dubbo

找到對應(yīng)的接口所在的方法入口或者dubbbo的定義方法,即可
比如:同步下面的接口

效果如下:

4、idea-yapi支持規(guī)則配置以及實(shí)例

4.1、規(guī)則配置

1:插件如何生成屬性備注 ,通過獲得字段備注中的注釋

/** 
* 年齡
*/
private Integer age;

2:插件如何生成接口名稱,通過接口上的注釋,或者引用上的 注釋

/**
     * 添加或更新課程數(shù)據(jù)
     *
     * @param courseOpt
     * @return {@link CommonRes}
     */
    @RequestMapping(value = "/test", method = RequestMethod.POST)
    public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
    }
    /**
     * @description: 添加或更新課程數(shù)據(jù)  (@Description 也可)
     * @param: [CourseParam]
     * @return: Course
     * @date: 2018/3/15
     */
     @RequestMapping(value = "/test", method = RequestMethod.POST)
     public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
    }
     @RequestMapping(value = ICourse.ADD_OR_UPDATA_COURSE, method = RequestMethod.POST)
     public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
     }
     public interface  ICourse{
       /**
        * @description: 添加或更新課程數(shù)據(jù)  (@Description 也可)
        * @param: [CourseParam]
       */
       ADD_OR_UPDATA_COURSE="test";
     }

3:@link 參數(shù)定義展示在字段備注中
第一種@link 方式

/** 
* 狀態(tài) {@link com.xxx.constant.StatusConstant}
*/
private Integer status;

第二種@link 方式

import com.xxx.constant.StatusConstant;
/** 
* 狀態(tài) {@link StatusConstant}
*/
private Integer status;

不支持方式

import com.xxx.constant.*;
/** 
* 狀態(tài) {@link StatusConstant}
*/
private Integer status;

4:實(shí)現(xiàn)自定義分類
通過在方法或類注釋中加 @menu 注釋實(shí)現(xiàn),優(yōu)先級 方法>類>package 下面或者上面的@menu,如果沒有自定義 默認(rèn)為tool-tmp,支持多級分類(多級分類只能是crazy 分支的yapi)

package com.project.demo;
/** 
 * @menu 這里填寫類分類名稱
 */
import com......
/** 
 *@description: 用戶控制器
 *@menu 這里填寫類分類名稱
 */   
@RestController
public class UserController {
    /**
     * @description: 新增用戶
     * @param: [User]
     * @menu: 這里填寫方法級別分類名稱(比如 多級目錄/menu/menu1/menu2)
     * @return: Response<UserDTO>
     * @date: 2018/3/15
     */
     @RequestMapping(value = "/addUser", method = RequestMethod.POST)
     public Response<UserDTO> addUser(@RequestBody User user){
    }
}

5:支持注解

  String RequestMapping="org.springframework.web.bind.annotation.RequestMapping";
    String GetMapping="org.springframework.web.bind.annotation.GetMapping";
    String PostMapping="org.springframework.web.bind.annotation.PostMapping";
    String PutMapping="org.springframework.web.bind.annotation.PutMapping";
    String DeleteMapping="org.springframework.web.bind.annotation.PutMapping.DeleteMapping";
    String PatchMapping="org.springframework.web.bind.annotation.PutMapping.PatchMapping";
    String RequestBody="org.springframework.web.bind.annotation.RequestBody";
    String RequestParam="org.springframework.web.bind.annotation.RequestParam";
    String RequestHeader="org.springframework.web.bind.annotation.RequestHeader";
    String RequestAttribute="org.springframework.web.bind.annotation.RequestAttribute";
    String PathVariable="org.springframework.web.bind.annotation.PathVariable";
    String NotNull="javax.validation.constraints.NotNull";
    String NotEmpty="javax.validation.constraints.NotEmpty";
    String NotBlank="javax.validation.constraints.NotBlank";

支持Request Param 注解
生成的 uid 和bid 備注為 用戶id(Integer),baby id(Integer) 如果沒有備注,則只有(Integer)

   /**
     * 測試RequestHeader desc 規(guī)范的多個(gè)
     * @param uid 用戶id
     * @param bid baby id
     * @param request
     * @param response
     */
    @RequestMapping(value = "/testRequestDesc4")
    public void testRequestDesc4(@RequestHeader(name = "uid")Integer uid, @RequestParam(name = "bid")Integer bid, HttpServletRequest request, HttpServletResponse response){
    }

支持@status注解
支持已發(fā)布(done),設(shè)計(jì)中(design),開發(fā)中(undone),已提測(testing),已過時(shí)(deprecated),暫停開發(fā)(stoping),支持中英文 (crazy 分支),新增接口默認(rèn) 開發(fā)中,更新時(shí)如果沒有寫status情況下默認(rèn)使用當(dāng)前狀態(tài)

   /**
     * 測試RequestHeader desc 規(guī)范的多個(gè)
     * @param uid 用戶id
     * @status 開發(fā)中 (或者 undone)
     * @param request
     * @param response
     */
    @RequestMapping(value = "/testRequestDesc4")
    public void testRequestDesc4(@RequestHeader(name = "uid")Integer uid, @RequestParam(name = "bid")Integer bid, HttpServletRequest request, HttpServletResponse response){
    }

6:項(xiàng)目中通過fitler或攔截器或注解等 實(shí)現(xiàn)全局統(tǒng)一響應(yīng)對象 返回如何處理
在misc.xml 中配置 returnClass ,值為全局統(tǒng)一響應(yīng)對象全路徑。比如下面代碼如果配置了returnClass 為GlobalResponse ,那么他生成的yapi 響應(yīng)對象為,GlobalResponse

   /**
     * 測試RequestHeader desc 規(guī)范的多個(gè)
     * @param uid 用戶id
     * @status 開發(fā)中 (或者 undone)
     * @param request
     * @param response
     */
    @RequestMapping(value = "/testRequestDesc4")
    public Integer testRequestDesc4(@RequestHeader(name = "uid")Integer uid, @RequestParam(name = "bid")Integer bid, HttpServletRequest request, HttpServletResponse response){
    }
public class GlobalResponse<T> {
    private String status;
    private String code;
    private T data;
  ......
}

7:swagger 支持
目前1.7.7以上支持以下注解

  String API_OPERATION = "io.swagger.annotations.ApiOperation";
  String API_MODEL_PROPERTY = "io.swagger.annotations.ApiModelProperty";
  String API_PARAM = "io.swagger.annotations.ApiParam";

4.2、實(shí)例

4.2.1、get方式

        /**
         * get方式
         *
         * @param param1 參數(shù)1的名稱或描述
         * @param param2 參數(shù)2的名稱或描述
         * @param param3 參數(shù)3的名稱或描述
         * @return 響應(yīng)描述
         * @author 蘇葉
         * @date 2019-12-29 17:24
         */
        @RequestMapping(value = "/pathOfApi1", method = RequestMethod.GET)
        public Response<GuideResult> methodName1(@RequestParam String param1,
                                                 @RequestParam String param2,
                                                 @RequestParam(required = false, defaultValue = "android") String param3) {
            return new Response<GuideResult>();
        }

效果

4.2.2、Post方式

       /**
         * post方式
         *
         * @param jsonModel 入?yún)?shù)
         * @return 通用返回
         * @author 蘇葉
         * @date 2019-12-29 17:20
         */
        @Deprecated
        @RequestMapping(value = "/pathOfApi2", method = RequestMethod.POST)
        public Response methodName2(@RequestBody MockDtoOrVo jsonModel) {
            return new Response();
        }

MockDtoOrVo 入?yún)?/p>

/**
 * moke說明
 *
 * @author 蘇葉
 * @version 1.0
 * @date 2019-12-29 16:58
 */
@Data
@ToString
public class MockDtoOrVo {
    /**
     * 字段注釋
     */
    private Long field1;
    /**
     * 字段注釋
     */
    private Double field2;
    /**
     * 某個(gè)枚舉
     * {@link com.kaishustory.userx.common.constant.ClientForm}
     */
    private int field3;
    /**
     * 當(dāng)目標(biāo)枚舉字段與當(dāng)前字段名不一致,額外指定
     *
     * @see com.kaishustory.userx.common.constant.ClientForm#ANDROID
     */
    private int field4;
    /**
     * 可以用注解`@Deprecated`來表示字段被廢棄
     * 也可以用注釋`@deprecated`
     *
     * @deprecated It's a secret
     */
    @Deprecated
    private int field5;
    /**
     * 如果使用javax.validation的話
     * 可以使用@NotBlank/@NotNull表示字段必須
     */
    @NotBlank
    @NotNull
    private String field6;
}

效果

5、EasyApi安裝步驟

5.1、安裝EasyApi

在idea-Preferences-Plugins中搜索easyapi,安裝,并重啟idea

5.2、創(chuàng)建postmantoken獲取token

5.3、配置easyapi導(dǎo)出postman

5.4、項(xiàng)目配置

.easy.api.yml


實(shí)例在moudle下面配置如下

在對應(yīng)的controller文件右鍵-genernate - export postman,即可

生成對應(yīng)目錄的請求配置

具體的方法注釋:
https://github.com/diwand/YapiIdeaUploadPlugin/wiki/%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8

到此這篇關(guān)于idea同步y(tǒng)api插件的文章就介紹到這了,更多相關(guān)idea同步y(tǒng)api插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jenkins安裝和插件管理配置入門教程

    Jenkins安裝和插件管理配置入門教程

    這篇文章主要介紹了Jenkins安裝和插件管理知識,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Spring獲取Cookie和Session(@CookieValue()和@SessionAttribute())

    Spring獲取Cookie和Session(@CookieValue()和@SessionAttribute())

    本文主要介紹了Spring獲取Cookie和Session(@CookieValue()和@SessionAttribute()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • SpringBoot如何集成Token

    SpringBoot如何集成Token

    文章介紹了如何使用jjwt插件實(shí)現(xiàn)Token的生成和校驗(yàn),該插件可以直接與SpringBoot集成,Token由三部分組成,分別是header、payload和signature,通過在請求頭中傳遞Token,后端可以驗(yàn)證其合法性,從而提高安全性
    2025-01-01
  • Springboot網(wǎng)站第三方登錄 微信登錄

    Springboot網(wǎng)站第三方登錄 微信登錄

    這篇文章主要為大家詳細(xì)介紹了Springboot網(wǎng)站第三方登錄 ,微信登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java中常用數(shù)據(jù)類型的輸入輸出詳解

    Java中常用數(shù)據(jù)類型的輸入輸出詳解

    本文主要介紹了Java中幾個(gè)常用的數(shù)據(jù)類型是如何輸入和輸出的,例如:Char型、int型、double型、數(shù)組、字符串等,對我們學(xué)習(xí)java有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • 基于SpringBoot從零構(gòu)建生產(chǎn)級OOM監(jiān)測預(yù)警系統(tǒng)

    基于SpringBoot從零構(gòu)建生產(chǎn)級OOM監(jiān)測預(yù)警系統(tǒng)

    OOM是Java應(yīng)用在生產(chǎn)環(huán)境中最致命的殺手之一,一次未及時(shí)發(fā)現(xiàn)的內(nèi)存泄漏,足以讓整個(gè)服務(wù)集群在數(shù)分鐘內(nèi)崩潰,造成不可估量的業(yè)務(wù)損失,本文將從技術(shù)原理到工程實(shí)踐,帶你構(gòu)建一套完整的Spring Boot OOM監(jiān)測預(yù)警系統(tǒng),需要的朋友可以參考下
    2026-03-03
  • Java局部打印效果不同問題解決方案

    Java局部打印效果不同問題解決方案

    這篇文章主要介紹了Java局部打印效果不同問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java連接WebSocket的實(shí)現(xiàn)教程

    Java連接WebSocket的實(shí)現(xiàn)教程

    這篇文章主要介紹了Java連接WebSocket的實(shí)現(xiàn)教程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • SpringBoot使用slf4j日志并輸出到文件中的操作方法

    SpringBoot使用slf4j日志并輸出到文件中的操作方法

    這篇文章主要介紹了SpringBoot使用slf4j日志并輸出到文件中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • MyBatis框架底層的執(zhí)行原理源碼解析

    MyBatis框架底層的執(zhí)行原理源碼解析

    這篇文章主要介紹了MyBatis框架底層的執(zhí)行原理源碼解析,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評論

砚山县| 香港 | 沽源县| 高清| 霞浦县| 中江县| 宜州市| 南涧| 玉龙| 绥德县| 米林县| 德保县| 旺苍县| 都昌县| 武义县| 伊吾县| 万全县| 织金县| 茶陵县| 吴桥县| 海南省| 华容县| 抚顺县| 固安县| 潜江市| 诸暨市| 神木县| 汪清县| 钟祥市| 轮台县| 汶上县| 西乌珠穆沁旗| 庆云县| 张掖市| 岑溪市| 大埔区| 衢州市| 杂多县| 宿松县| 永善县| 兰坪|