使用Easy-Yapi插件可以轻松将项目的接口文档同步到Yapi。
官方文档地址:https://easyyapi.com/documents/index.html
安装
内网插件市场安装 easy-yapi-2.3.1.183.0
插件库配置参考:【指南】环境搭建和开发初体验#%E9%85%8D%E7%BD%AE%E6%8F%92%E4%BB%B6%E5%BA%93
配置
1.开启loginMode: 勾选Preferences(Settings) > Other Settings > EasyApi > Yapi > loginMode
server填写 http://software.**.com/yapi
2.在Preferences(Settings) > Other Settings > EasyApi > Built-in config 中配置鉴权逻辑:
yapi.export.before=groovy:```
httpClient.request().url("http://software.**.com/yapi/api/user/login")
.method("POST")
.contentType("application/json")
.body(["email":"xxx@xxx.com","password":"*******"])
.call();
```
Email和password填写你自己的
使用
1.在controller文件夹、单个controller文件上右键 > Export Api
2.选择要导出的api(默认全选),点击确认按钮
3.第一次导出需要输入项目ID
项目ID获取:
YAPI导入效果
JavaDoc注释
该导入插件默认根据javadoc来生成备注信息,可以参考以下demo
/**
* 分类名称
* 分类备注/描述
*
* @module 归属项目
*/
@RestController
@RequestMapping(value = "/pathOfCtrl")
public class MockCtrl {
/**
* api名称
* api描述
* @param param1 参数1的名称或描述
* @param param2 可以用`@link`来表示当前参数的取值是某个枚举{@link some.enum.or.constant.class}
* @param param3 当目标枚举字段与当前字段名不一致,额外指定{@link some.enum.or.constant.class#property1}
* @return 响应描述
*/
@RequestMapping(value = "/pathOfApi1")
public Result methodName1(long param1,
@RequestParam String param2,
@RequestParam(required = false, defaultValue = "defaultValueOfParam3") String param3){
...
}
/**
* 默认使用`application/x-www-form-urlencoded`,
* 对于`@RequestBody`将使用`application/json`
* 可以用注解`@Deprecated`来表示api废弃
* 也可以用注释`@deprecated`
*
* @deprecated 改用{@link #methodName3(String)}
*/
@Deprecated
@RequestMapping(value = "/pathOfApi2")
public Result methodName2(@RequestBody MockDtoOrVo jsonModel){
...
}
/**
* 所有注释或者参数描述中都可以使用`@link`来引用另一个API
* 例如:
* 请先访问{@link #methodName4(String)}
* 也可以使用`@see`来引用另一个API
*
* @param param1 参数1的名称或描述 可以从{@link #methodName5(String)}中获得
* @see #methodName6(String)
* @deprecated 改用{@link #methodName7(String)}
*/
@Deprecated
@RequestMapping(value = "/pathOfApi3")
public Result methodName3(long param1){
...
}
...
}
public class MockDtoOrVo {
/**
* 字段注释
*/
private Long field1;
private Double field2;//注释也可以写在这
/**
* 使用@see来说明当前字段的取值是某个枚举
* @see some.enum.or.constant.class
*/
private int field3;
/**
* 当目标枚举字段与当前字段名不一致,额外指定
* @see some.enum.or.constant.class#property1
*/
private int field4;
/**
* 可以用注解`@Deprecated`来表示字段被废弃
* 也可以用注释`@deprecated`
* @deprecated It's a secret
*/
@Deprecated
private int field5;
/**
* 如果使用javax.validation的话
* 可以使用@NotBlank/@NotNull表示字段必须
*/
@NotBlank
@NotNull
private String field6;
...
}
兼容swagger
# swagger
# ApiParam
param.doc=@io.swagger.annotations.ApiParam#value
param.default.value=@io.swagger.annotations.ApiParam#defaultValue
param.required=@io.swagger.annotations.ApiParam#required
param.ignore=@io.swagger.annotations.ApiParam#hidden
# Api
class.doc=@io.swagger.annotations.Api#value
# ApiModel
class.doc=io.swagger.annotations.ApiModel#value
class.doc=io.swagger.annotations.ApiModel#description
# ApiModelProperty
json.rule.field.name=@io.swagger.annotations.ApiModelProperty#name
field.ignore=@io.swagger.annotations.ApiModelProperty#hidden
field.doc=@io.swagger.annotations.ApiModelProperty#value
field.doc=@io.swagger.annotations.ApiModelProperty#notes
field.required=@io.swagger.annotations.ApiModelProperty#required
# ApiOperation
method.doc=@io.swagger.annotations.ApiOperation#value
api.tag=@io.swagger.annotations.ApiOperation#tags
版权声明:《 【指南】YAPI接口同步插件 》为Saber原创文章,转载请注明出处!
最后编辑:2022-3-12 03:03:53