SpringBoot使用EasyYapi对代码0侵入实现API接口一键发布到YApi的进阶使用 - 第423篇
历史文章(累计400+篇文章)
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
你真的学会了Lambda表达式了吗?一篇让你学废了不香么 - 第417篇
当你的Stream遇上Lambda就爱上了,超级无敌酷酷!- 第418篇
java8+lambda+Stream api实战案例学彻底透学废 - 第419篇
Spring Boot使用ApplicationEvent来实现事件发布订阅功能(美女一个都不能少,都要通知到) - 第420篇
接口管理平台YApi坑死我了(超级详细实操教程) - 421篇
SpringBoot使用EasyYapi对代码0侵入实现API接口一键发布到YApi - 第422篇
师傅:徒儿,前几天和你讲的EasyYapi用明白没?
悟纤:师傅,基本的使用已经欧了。
师傅:不错,不错,没有让师傅失望。
悟纤:但是我发现还有好多EasyYapi的编写规范,我不清楚。
师傅:那师傅今天就好好你说说~
悟纤:师傅,我已经拿好笔和纸,带上耳朵,准备听你讲了。
师傅:耶,今天咋这么积极呢?
悟纤:带着问题来学习才能有更高的学习效率么。
师傅:不错,这个想法很好,带着目标,才能不迷失方向。
悟纤:那师傅咱就开干呗~~~
导读
在前面的小节中,我们介绍了EasyYapi插件的使用,但在实际项目中,如果只是学习到这里是远远不够的,所以这一节的话,我们会解答前一小节遗留的问题:如何设置参数是必需的以及EasyYapi的进阶使用。
一、EasyYapi的注释规范
在前面小节中,我们使用EasyYapi插件可以一键发布到YApi平台,在代码中并没有做任何的配置,那么是EasyYapi是如何工作了?
EasyYapi核心就是抓取到了javadoc的注释。
1.1 类上的注释-分类的信息
在类上面的注释,对应的是YApi的分类的信息,看下如下代码:
/**
*
* 订单管理(分类名称)
* 对订单的基本操作(分类备注/描述)
*
* @module springboot-vide-demo
* @author 悟纤「公众号SpringBoot」
* @date 2022-03-21
* @slogan 大道至简 悟在天成
*/
@RestController
@RequestMapping("/order")
public class OrderController {}
说明:
(1)第一行默认是接口的分类名称。
(2)第二行到第一个以@开头的行之前的为分类的描述。
(3)@module用于分类api:
n 导出postman时 , 每个module将作为一个单独的文件夹
n 导出yapi时 , 每个module需要配置相应的token, 即对应一个yapi中的项目
n 默认情况下取当前模块名(单模块项目取项目名)
所以当要导出到YApi的时候,那么@module就是对应的YApi配置的项目。至于说项目的名称叫什么这个不重要,重要的是项目对应的token:
这里我们重新定义了@module为在YApi设置的项目<多音短视频项目>,那么在发布的时候,就需要填写对应的Token(token怎么找,在上一节有说过):
这样就会发布到<抖音音短视频项目>:
特别说明:没有特殊情况下,这个@module就不要配置了。
另外我们可以看下分类的备注:
1.2 方法上的注释-接口信息
方法上的注释,对应YApi的接口信息,看如下代码:
/**
* 测试方法1(api名称)
* 这个是测试方法的描述(api描述)
*
* @param param1 参数1的名称或描述
* @param param2 可以用`@link`来表示当前参数的取值是某个枚举{@link OrderInfo}
* @param param3 参数3的名称或描述
* @return 响应描述
*/
@RequestMapping("/method1")
public String method1(long param1,
@RequestParam String param2,
@RequestParam(required = true,defaultValue = "defaultValueOfParam3") String param3){
return "SUCCESS";
}
(1)第一行默认是接口的名称。
(2)第二行到第一个以@开头的行之前的为接口的描述。
(3)@param 是参数的信息
(4)@return 是返回的信息
看下对应的YApi的显示:
点击进去看下详情:
这里我们能看出如果参数要默认是必须的话,那么使用注解@RequestParam即可实现了。
1.2 方法上的参数是引用类型
我们的saveOrder的参数是引用类型:
我们的saveOrder的参数是引用类型:
/**
* 保存订单
* @param orderInfo
* @return
*/
@RequestMapping("/saveOrder")
public OrderInfo saveOrder(OrderInfo orderInfo){
return orderInfo;
}
对应的OrderInfo:
/**
* 订单信息
*
* @author 悟纤「公众号SpringBoot」
* @date 2022-03-21
* @slogan 大道至简 悟在天成
*/
public class OrderInfo {
private int oid;
private int uid;
private int shopId;
private Date createTime;
public int getOid() {
return oid;
}
public void setOid(int oid) {
this.oid = oid;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getShopId() {
return shopId;
}
public void setShopId(int shopId) {
this.shopId = shopId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
这样的情况下,我们在YApi得到的结果是:
明显这里的参数的字段都没有备注,以及是否必须都是否。对于这个问题,我们只需要在OrderInfo上进行添加即可注释即可,对于是否必须,需要使用到注解@NotNull,那么需要添加依赖(Spring Boot项目):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
OK,好了整体的代码如下:
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 订单信息
*
* @author 悟纤「公众号SpringBoot」
* @date 2022-03-21
* @slogan 大道至简 悟在天成
*/
public class OrderInfo {
/**
* 订单的id
*/
@NotNull
private int oid;
@NotBlank
private int uid;//创建订单的用户(注释也可以写在这里)
@NotNull
private int shopId;//商品的id.
private Date createTime;//创建时间
public int getOid() {
return oid;
}
public void setOid(int oid) {
this.oid = oid;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getShopId() {
return shopId;
}
public void setShopId(int shopId) {
this.shopId = shopId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
说明:如果使用javax.validation的话,可以使用@NotBlank/@NotNull表示字段必须。
看下效果:
二、EasyYapi的Call Api
打开项目中的包含api的文件, 右键文件内容选择选择Call Api, 即可通过窗口进行api请求:
好像不是很好用。
三、EasyYapi进阶使用
3.1 @ignore忽略API
当在接口注释使用 @ignore时候,导出被忽略:
3.2字段被废弃
用注释`@deprecated`来表示字段被废弃:
/**
* 创建时间
* @deprecated
*/
private Date createTime;
YApi显示效果:
当然在属性上添加注解@Deprecated也有类似的效果:
/**
* 创建时间
*/
@Deprecated
private Date createTime;
YApi显示效果:
细观察微微还是有不同的区别的,少了一个换行,O(∩_∩)O哈哈~
3.3 本地配置文件
支持的规则(截取一部分):
3.3.1 如何配置
将配置文件添加到项目或模块根目录中:
这里我们使用.easy.api.config的文件,在项目根目录进行创建:
温馨提示:.不能少。
3.3.2 api.name
用于设置API名称
缺省情况下,默认使用api注释的第一行作为API的名称
我们在配置文件.easy.api.config添加配置:
# read api name from tag `api.name`
api.name=#api.name
那么就可以在注解上进行使用:
说明:当配置了@api.name之后,就不需使用第一行作为API的名称了;当未配置@api.name的话,使用注释的第一行作为API的名称。
3.3.3 api.status
这个就是状态了,默认都是已完成的:
那么要修改未完成如何操作:
我们在配置文件.easy.api.config添加配置:
#yapi status
api.status[#undone]=undone
api.status[#todo]=undone
那么就可以在注解上进行使用:
在YApi查看的结果(要发布一下哦):
3.3.4 field.default.value
用于设置字段的默认值,支持的版本v1.7.1+。
(1)原生编码支持
默认的所有含有默认初始值的字段,取其默认初始值. 如:
private short status = -1;
看了下,只在返回数据有效果,并不是参数:
(2)使用配置:
field.default.value=#default
然后在注释上进行使用@default:
看下效果:
请求参数和返回数据都生效了。
在运行的界面也是看到是-2:
3.3.4 field.demo
字段示例信息:
field.demo=#demo
使用:
效果:
所以这里可以总结出field.demo配置的是请求参数的示例,field.default.value配置的是返回参数的默认值;当field.demo没有配置的时候会使用field.default.value配置的值。
其它的配置项大家可以根据文档自行研究。
https://easyyapi.com/setting/rules/field_required.html
结束语
EasyYapi不仅于此,还有很多需要大家自行进行研究的。正所谓师父领进门,修行靠自身。
我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。
à悟空学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
ShardingJDBC分库分表:http://t.cn/A6ZarrqS
分布式事务解决方案:http://t.cn/A6ZaBnIr
JVM内存模型调优实战:http://t.cn/A6wWMVqG
Spring入门到精通:https://t.cn/A6bFcDh4
大话设计模式之爱你:https://dwz.cn/wqO0MAy7
SpringBoot使用EasyYapi对代码0侵入实现API接口一键发布到YApi的进阶使用 - 第423篇相关推荐
- 淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享
淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享如下 1.公共参数 名称 类型 必须 描述 key ...
- java 非侵入式_Java非侵入式API接口文档工具apigcc用法详解
一个非侵入的api编译.收集.Rest文档生成工具.工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. ...
- 禁止腾讯检测HTML代码,微信域名检测API接口的分享以及腾讯屏蔽检测的原理
背景 最近手里有个项目需要检测域名在微信里是否可以打开,如果被微信拦截,则需要进行下一步操作,所以需要判断域名的状态,但是微信官方并没有提供相关查询的方法,最后在网上找到了这个接口地址,分享给有需要的 ...
- python打招呼的代码_【python】5行代码实现百度翻译api接口调用
1. 目标站点 2. 完整代码 import requests url = 'https://fanyi.baidu.com/sug' data = {'kw': 'hello'} # 你只需要改kw ...
- 基于文档注释接口文档生成工具(代码0侵入附源码)
本文主要分享一个基于个人兴趣,旨在提高工作效率,开发了一个基于文档注释,接口文档生成工具,欢迎大佬指点. 源码以及使用demo地址 :传送门 1.前置介绍 1.1前世 现在大多数项目都走向了前后端分离 ...
- 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!
欢迎关注方志朋的博客,回复"666"获面试宝典 介绍 smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-d ...
- 搭建YApi接口管理平台+IDEA插件easyYapi一键生成接口动态发布到YApi平台
文章目录 一.简介 二.YApi搭建 1.准备 2.可视化部署 3.浏览器访问 4.新建项目 5.获取项目的token 三.IDEA插件easyYapi 1.安装easyYapi 2.配置连接YApi ...
- 微信公众平台服务器的官方示例代码,微信公众平台API接口(示例代码)
简介 微信公众平台消息接口为开发者提供了一种新的消息处理方式.微信公众平台消息接口为开发者提供与用户进行消息交互的能力.对于成功接入消息接口的微信公众账号,当用户发消息给公众号,微信公众平台服务器会使 ...
- php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码
本节主要内容: php开发API接口的实现代码 一.PHP API接口的服务端部分 复制代码 代码示例: /** * PHP开发API接口 服务端 * edit: www.jbxue.com */ r ...
最新文章
- tomcat安装问题解决
- 调查显示开发者最讨厌 PHP,最爱 Python
- amcharts 网页绘图插件
- mysql库存自动更新_秒杀库存需不需要实时更新到mysql?
- java 用文件对话框打开文件
- 对于(不是特别不合理)的指摘、的对应方式(学会调整,不要一根筋)
- sicktim571操作手册_TIM中文操作手册.PDF
- android date 组件,Android中TimePicker与DatePicker时间日期选择组件的使用实例
- Go基础:不同数据类型作为函数参数传递值传递/地址(引用)传递判断
- 上班摸鱼打卡模拟器微信小程序源码
- DNS请求报文和响应报文解析
- 阿里云服务器中目录的简单介绍及简单使用
- 差分与反差分计算(MATLAB)
- 简单实现将GIF图片转换为字符画
- 计算机d盘可以格式化吗,电脑d盘格式化对电脑有影响吗
- 【go】mac下brew升级golang
- java后端实习第一个月总结
- 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)
- shell脚本实例-系统监控
- MQTT 赋能工业 PLC 数据采集与应用