历史文章(累计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也有类似的效果:

/** * 创建时间 */@Deprecatedprivate 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 statusapi.status[#undone]=undoneapi.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篇相关推荐

  1. 淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享

    淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享如下 1.公共参数 名称 类型 必须 描述 key ...

  2. java 非侵入式_Java非侵入式API接口文档工具apigcc用法详解

    一个非侵入的api编译.收集.Rest文档生成工具.工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. ...

  3. 禁止腾讯检测HTML代码,微信域名检测API接口的分享以及腾讯屏蔽检测的原理

    背景 最近手里有个项目需要检测域名在微信里是否可以打开,如果被微信拦截,则需要进行下一步操作,所以需要判断域名的状态,但是微信官方并没有提供相关查询的方法,最后在网上找到了这个接口地址,分享给有需要的 ...

  4. python打招呼的代码_【python】5行代码实现百度翻译api接口调用

    1. 目标站点 2. 完整代码 import requests url = 'https://fanyi.baidu.com/sug' data = {'kw': 'hello'} # 你只需要改kw ...

  5. 基于文档注释接口文档生成工具(代码0侵入附源码)

    本文主要分享一个基于个人兴趣,旨在提高工作效率,开发了一个基于文档注释,接口文档生成工具,欢迎大佬指点. 源码以及使用demo地址 :传送门 1.前置介绍 1.1前世 现在大多数项目都走向了前后端分离 ...

  6. 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!

    欢迎关注方志朋的博客,回复"666"获面试宝典 介绍 smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-d ...

  7. 搭建YApi接口管理平台+IDEA插件easyYapi一键生成接口动态发布到YApi平台

    文章目录 一.简介 二.YApi搭建 1.准备 2.可视化部署 3.浏览器访问 4.新建项目 5.获取项目的token 三.IDEA插件easyYapi 1.安装easyYapi 2.配置连接YApi ...

  8. 微信公众平台服务器的官方示例代码,微信公众平台API接口(示例代码)

    简介 微信公众平台消息接口为开发者提供了一种新的消息处理方式.微信公众平台消息接口为开发者提供与用户进行消息交互的能力.对于成功接入消息接口的微信公众账号,当用户发消息给公众号,微信公众平台服务器会使 ...

  9. php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码

    本节主要内容: php开发API接口的实现代码 一.PHP API接口的服务端部分 复制代码 代码示例: /** * PHP开发API接口 服务端 * edit: www.jbxue.com */ r ...

最新文章

  1. tomcat安装问题解决
  2. 调查显示开发者最讨厌 PHP,最爱 Python
  3. amcharts 网页绘图插件
  4. mysql库存自动更新_秒杀库存需不需要实时更新到mysql?
  5. java 用文件对话框打开文件
  6. 对于(不是特别不合理)的指摘、的对应方式(学会调整,不要一根筋)
  7. sicktim571操作手册_TIM中文操作手册.PDF
  8. android date 组件,Android中TimePicker与DatePicker时间日期选择组件的使用实例
  9. Go基础:不同数据类型作为函数参数传递值传递/地址(引用)传递判断
  10. 上班摸鱼打卡模拟器微信小程序源码
  11. DNS请求报文和响应报文解析
  12. 阿里云服务器中目录的简单介绍及简单使用
  13. 差分与反差分计算(MATLAB)
  14. 简单实现将GIF图片转换为字符画
  15. 计算机d盘可以格式化吗,电脑d盘格式化对电脑有影响吗
  16. 【go】mac下brew升级golang
  17. java后端实习第一个月总结
  18. 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)
  19. shell脚本实例-系统监控
  20. MQTT 赋能工业 PLC 数据采集与应用

热门文章

  1. JSDoc入门使用指南 -- 手摸手教你用JSDoc(超好用的js文档生成工具)
  2. NTA PEG 异硫氰酸荧光素,NTA PEG FITC,Fluorescein-NTA
  3. VMware虚拟机最新详细安装保姆级教程(2023年新版教程)
  4. 第五讲:研发项目需求的精准定义
  5. zk+LODOP打印控件使用
  6. 织梦DedeCMS5.7设置全站伪静态的方法
  7. 苹果x手机防水吗_两年前8千8买的苹果X,还不如现在安卓手机能装X!
  8. ajax是什么东西?
  9. 自媒体前景到底如何?2017下半年十大趋势预测
  10. smartforms 二维码打印