Eolink自动全代码注释自动上传API

news2025/8/17 4:32:57

目录

一、自动全代码注释

测试环境

Eolink Apikit安装

1、自建bootstrap项目用作测试

2、点击【File】->【Settings...】

3、搜索并安装【Eollink ApiKit】

4、添加eo注释

5、注释效果

二、一键上传API

1、配置服务信息

2、Server获取

3、SpaceKey获取

4、ProjectHashKey获取

5、选择上传分组

添加分组

修改注释

6、一键上传API——单个API上传

7、一键上传API——上传所有API

8、接口测试

三、接口注释

四、属性注释

五、总结


一、自动全代码注释

EoLink提供了【idea】的【Eolink ApiKit】插件,此插件可以快速的将类与函数均添加一个标准的Eolink注释方法。

注释示例:

这里为了测试方便,我写了一些直接返回的测试接口。

/**
 * @eo.name UpdateById
 * @eo.url /api/UpdateById
 * @eo.method put
 * @eo.request-type formdata
 * @param id
 * @param introduce
 * @return Object
 */
@PutMapping("/api/UpdateById")
public Object UpdateById(String id,String introduce) {
    try {
        return new SUCCESS("修改"+id+"成功", UUID.randomUUID());
    } catch (Exception e) {
        return new ERROR("修改"+id+"失败", UUID.randomUUID());
    }
}

测试环境

测试语言:Java

系统环境:win10

开发环境:IntelliJ IDEA 2021.3.2(支持2020-2022年版本)

Plugins搜索:【Eolink Apikit】点击【install】安装。

Eolink Apikit安装

1、自建bootstrap项目用作测试

这块步骤就略过了,咱们程序员应该都是会的。我用的maven的pom.xml我分享一下。一看就知道是个自定义的返回测试微服务。

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2、点击【File】->【Settings...】

选择设置

3、搜索并安装【Eollink ApiKit】

这里需要按照步骤操作:

1、选择【Plugins】。

2、在搜索框中搜索【Eolink ApiKit】。

3、点击搜索结果【Search Results】中出现的【Eolink ApiKit】的【Install】按钮,我这里安装过了,故而显示一个过去时的【Installed】。

4、点击【OK】确认操作。

4、添加eo注释

这里我给了个示例代码,方便操作。这也是未加注释的类与函数。

import org.springframework.web.bind.annotation.*;

import java.util.UUID;

@RestController
@CrossOrigin
public class EolinkApiController {

    @GetMapping("/api/GetInfo")
    public Object GetInfo() {
        return new SUCCESS("初始化成功", UUID.randomUUID());
    }

    @GetMapping("/api/SelectById")
    public Object SelectById(String id) {
        return new SUCCESS("查询"+id+"成功", UUID.randomUUID());
    }

    @PostMapping("/api/Login")
    public Object Login(String userName,String passWord) {
        return new SUCCESS("登录成功", UUID.randomUUID());
    }

    @PostMapping("/api/AddInfo")
    public Object AddInfo(String userName,String passWord,String introduce) {
        return new SUCCESS("添加成功", UUID.randomUUID());
    }

    @PutMapping("/api/UpdateById")
    public Object UpdateById(String id,String introduce) {
        try {
            return new SUCCESS("修改"+id+"成功", UUID.randomUUID());
        } catch (Exception e) {
            return new ERROR("修改"+id+"失败", UUID.randomUUID());
        }
    }
}
//自己找个位置创建一个,这个不需要引入到API中,我就方便用于返回
class BackResult {
    public BackResult(String message, Object result) {
        this.state = true;
        this.message = message;
        this.result = result;
    }

    public boolean state;
    public String message;
    public Object result;
}

class SUCCESS extends BackResult {

    public SUCCESS(String message, Object result) {
        super(message, result);
        this.state = true;
    }
}

class ERROR extends BackResult {

    public ERROR(String message, Object result) {
        super(message, result);
        this.state = false;
    }
}

添加注释方法:

鼠标右键点击【Generate Class Doc】选择【HTTP】即可引入。

5、注释效果

import org.springframework.web.bind.annotation.*;

import java.util.UUID;

/**
 * @eo.api-type http
 * @eo.groupName 默认分组
 * @eo.path
 */

@RestController
@CrossOrigin
public class EolinkApiController {

    /**
     * @eo.name GetInfo
     * @eo.url /api/GetInfo
     * @eo.method get
     * @eo.request-type formdata
     * @return Object
     */
    @GetMapping("/api/GetInfo")
    public Object GetInfo() {
        return new SUCCESS("初始化成功", UUID.randomUUID());
    }

    /**
     * @eo.name SelectById
     * @eo.url /api/SelectById
     * @eo.method get
     * @eo.request-type formdata
     * @param id
     * @return Object
     */
    @GetMapping("/api/SelectById")
    public Object SelectById(String id) {
        return new SUCCESS("查询"+id+"成功", UUID.randomUUID());
    }

    /**
     * @eo.name Login
     * @eo.url /api/Login
     * @eo.method post
     * @eo.request-type formdata
     * @param userName
     * @param passWord
     * @return Object
     */
    @PostMapping("/api/Login")
    public Object Login(String userName,String passWord) {
        return new SUCCESS("登录成功", UUID.randomUUID());
    }

    /**
     * @eo.name AddInfo
     * @eo.url /api/AddInfo
     * @eo.method post
     * @eo.request-type formdata
     * @param userName
     * @param passWord
     * @param introduce
     * @return Object
     */
    @PostMapping("/api/AddInfo")
    public Object AddInfo(String userName,String passWord,String introduce) {
        return new SUCCESS("添加成功", UUID.randomUUID());
    }

    /**
     * @eo.name UpdateById
     * @eo.url /api/UpdateById
     * @eo.method put
     * @eo.request-type formdata
     * @param id
     * @param introduce
     * @return Object
     */
    @PutMapping("/api/UpdateById")
    public Object UpdateById(String id,String introduce) {
        try {
            return new SUCCESS("修改"+id+"成功", UUID.randomUUID());
        } catch (Exception e) {
            return new ERROR("修改"+id+"失败", UUID.randomUUID());
        }
    }
}

二、一键上传API

1、配置服务信息

前置条件:再次打开【Settings】

操作步骤:

1、搜索Eolink

2、选择Eolink Settings

3、服务器上获取【Server】、【SpaceKey】、【ProjectHashKey】

4、输入注册账号

5、StringType选择【camelCase(default)】

6、点击【OK】,这里为了能放大的截图我就没截取【OK】,直接能看到的。

2、Server获取

在自己的网页服务中就能看到对应的域名,但是这里在域名后面需要加上【/api】

3、SpaceKey获取

大胆的往后啦,网址的最后一个参数就是我们要的spaceKey。

4、ProjectHashKey获取

复制的时候仔细一些,别落下一个两个字符的。

5、选择上传分组

由于自动注释会选择【默认分组】,我们需要把默认分组改一下。

添加分组

我创建了一个叫做【EoLink20221124】 的分组。

查看未上传的组。 

修改注释

6、一键上传API——单个API上传

鼠标右键选择【Upload Api】就是单个API上传。

先选择需要上传的API接口名称,再点击Upload上传即可。 

右下角会显示上传成功提示,这里仅仅上传了【GetInfo】所以只显示一个。

成功效果: 

7、一键上传API——上传所有API

选择【Upload All Api】

上传成功显示,这里显示了上传了所有的API。 

成功效果:

8、接口测试

测试成功:

三、接口注释

我写了个接口类,可以直接复制过去测试一下,很方便。

public interface EolinkDAO {
    public Object GetInfo();
    public Object SelectById(String id) ;
    public Object Login(String userName,String passWord);
    public Object AddInfo(String userName,String passWord,String introduce);
    public Object UpdateById(String id,String introduce);
}

这是注释效果:

/**
 * @eo.api-type http
 * @eo.groupName 默认分组
 * @eo.path
 */

public interface EolinkDAO {
    /**
     * @eo.name GetInfo
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @return Object
     */
    public Object GetInfo();
    /**
     * @eo.name SelectById
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param id
     * @return Object
     */
    public Object SelectById(String id) ;
    /**
     * @eo.name Login
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param userName
     * @param passWord
     * @return Object
     */
    public Object Login(String userName,String passWord);
    /**
     * @eo.name AddInfo
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param userName
     * @param passWord
     * @param introduce
     * @return Object
     */
    public Object AddInfo(String userName,String passWord,String introduce);
    /**
     * @eo.name UpdateById
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param id
     * @param introduce
     * @return Object
     */
    public Object UpdateById(String id,String introduce);
}

四、属性注释

测试代码:

import java.util.Date;

public class Eolink {
    private String id;
    private Date createDate;
    private String projectName;
    private String introduce;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getIntroduce() {
        return introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
}

注释效果:

import java.util.Date;

/**
 * @eo.api-type http
 * @eo.groupName 默认分组
 * @eo.path
 */

public class Eolink {
    private String id;
    private Date createDate;
    private String projectName;
    private String introduce;

    /**
     * @eo.name getId
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @return String
     */
    public String getId() {
        return id;
    }

    /**
     * @eo.name setId
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param id
     * @return void
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @eo.name getCreateDate
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @return Date
     */
    public Date getCreateDate() {
        return createDate;
    }

    /**
     * @eo.name setCreateDate
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param createDate
     * @return void
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * @eo.name getProjectName
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @return String
     */
    public String getProjectName() {
        return projectName;
    }

    /**
     * @eo.name setProjectName
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param projectName
     * @return void
     */
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    /**
     * @eo.name getIntroduce
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @return String
     */
    public String getIntroduce() {
        return introduce;
    }

    /**
     * @eo.name setIntroduce
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param introduce
     * @return void
     */
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

五、总结

自动注释我测试了类和函数、属性等内容,都是可以注释的,而且很标准的注释,我们在刚才的整个操作过程中也能看到其标准度还是很高的。

这是基础的一个类的main方法注释。甚至只要有一定英语基础的小朋友也能很明白的看出注释的信息,所以非常的推荐给刚上大学的小朋友们,以后再也不会背老师说没写注释,或者注释写的不标准了,并且所有接口都能一键上传, 测试起来也很方便。

/**
 * @eo.api-type http
 * @eo.groupName 默认分组
 * @eo.path
 */

public class Action {
    /**
     * @eo.name main
     * @eo.url
     * @eo.method get
     * @eo.request-type formdata
     * @param args
     * @return void
     */
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++回溯法leetcode练习集

文章目录什么是回溯法回溯法的模板组合组合总和|||洛谷刷题-八皇后问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示解析&#xff1a;电话号码的字母组合组合总和组合总和II分割回文串复原IP地址小结子集子集||递增子序列全排列全排列||842排列数字皇后问题什么…

BGP进阶:BGP 综合实验一

BGP路由优选规则 BGP是一个应用非常广泛的边界网关路由协议&#xff0c;被部署于大型的网络环境中。它能够支持大规模的网络&#xff0c;能够运载IP骨干网络中大批量的路由前缀并且在AS之间灵活的传递。BGP拥有丰富的路径属性&#xff0c;以及路由策略部署工具&#xff0c;正是…

win10家庭版安装Docker

首先查看你的电脑里面是否是win10且没有Hyper-V&#xff0c;是的话&#xff0c;那这个教程就是给你的啦~ 1、安装Hyper-v 首先将下面的内容复制到新建的txt中&#xff0c;将txt更名为Hyper-V.cmd,右键管理员运行这个文件 pushd "%~dp0"dir /b %SystemRoot%\servici…

为了提前预测比赛结果,于是我用Python获取比赛球员数据进行分析,结果...

为了提前预测比赛结果&#xff0c;于是我用Python获取比赛球员数据进行分析&#xff0c;结果...前因后果准备工作实现步骤代码展示部分效果展示最后前因后果 最近不是世界杯嘛&#xff0c;但是太忙了实在没时间看&#xff0c;于是为了凑热闹&#xff0c;用Python把本次球员信息…

AQS源码解析 5.Condition条件队列 await() signal() 核心方法

AQS源码解析—Condition条件队列 await() & signal() 核心方法 简介 在 Condition 条件队列中使用的也是 AQS 中的 Node 结构&#xff0c;它并没有使用 prev 和 next 属性&#xff0c;而使用的是 nextWaiter 去实现了一个单向链表的结构&#xff1a; Node nextWaiter;流…

MySQL索引和事务

目录 1.索引 1.1 索引的作用 1.2 查看索引 1.3 创建索引 1.4 删除索引 1.5 索引背后的数据结构(重点、面试题) 2.事务 2.1 什么是事务? 2.2 事务的使用 2.2.1 回滚 2.2.2 执行 2.3 事务的原子性(事务的初心) 2.4 事务的一致性 2.5 事务的持久性 2.6 事务的隔离性…

STM32之蜂鸣器实验

本章知识点 STM32GPIO的应用 蜂鸣器的原理&#xff08;最好网上看看&#xff09; 蜂鸣器概述 蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电&#xff0c;广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作…

CFD基本概念

1、流动控制方程 2、流体力学中的流动模型及流场解 N-S方程→&#xff08;忽略粘性与热扩散&#xff09;→Euler方程→&#xff08;无旋&#xff09;→全速位方程→&#xff08;小扰动&#xff09;→小扰动方程→&#xff08;不可压&#xff09;→labplace方程&#xff1b; 数…

【机器学习】python实现随机森林

目录 一、模型介绍 1. 集成学习 2. bagging 3. 随机森林算法 二、随机森林算法优缺点 三、代码实现 四、疑问 五、总结 本文使用mnist数据集&#xff0c;进行随机森林算法。 一、模型介绍 1. 集成学习 集成学习通过训练学习出多个估计器&#xff0c;当需要预测时通过…

[附源码]SSM计算机毕业设计流浪动物救助网站JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【百度AI_人脸识别】图片对比相似度、人脸对比登录(调摄像头)

人脸对比 此文档功能&#xff1a; 两张人脸图片相似度对比&#xff1a;比对两张图片中人脸的相似度&#xff0c;并返回相似度分值。存档一张图片与调用的摄像中的人脸进行对比。项目、资源下载&#xff1a;https://download.csdn.net/download/m0_70083523/87150842?spm1001.2…

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算

编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算1.语法制导翻译1.1属性文法1.2算术表达式的计数器1.3属性的分类1.4属性依赖图继承属性的计算1.5语义规则的计算方法1.6属性计算次序2. S属性定义2.1 语法树与分析树2.2 语法树与DAG2.2.1构造表达式的语法树(DAG)2…

Android中常见的那些内存泄漏——【问题分析+方案】

1.静态Activity(Activity上下文Context)和View 静态变量Activity和View会导致内存泄漏&#xff0c;在下面代码中对Activity的Context和TextView设置为静态对象&#xff0c;从而产生内存泄漏&#xff1b; public class MemoryTestActivity extends AppCompatActivity {private…

[附源码]SSM计算机毕业设计健身健康规划系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

noexcept说明符/运算符

一、noexcept说明符 1、语法 &#xff08;1&#xff09;noexcept 与 noexcept(true) 相同 &#xff08;2&#xff09;noexcept&#xff08;表达式&#xff09; 如果 表达式 求值为 true&#xff0c;那么声明函数不会抛出任何异常。 &#xff08;3&#xff09;throw() //c1…

Ubuntu配置FTP服务

参考目录1.安装FTP服务器软件2.配置FTP服务3.Ubuntud登录ftp服务器4.windows下通过cuteFTPlianjei1.安装FTP服务器软件 (1) FTP文件传送协议(File Transfer Protocol&#xff0c;简称FTP)&#xff0c;是一个用于从一台主机到另一台主机传输文件的协议。 (2&#xff09;Linux下有…

Jetpack 之 LiveData 实现事件总线

事件总线相信大家很多时候都会用到&#xff0c;那大家常用的也就是常青树 EventBus&#xff0c;以及 RxJava 流行起来的后起之秀 RxBus。它们的使用方式都差不多&#xff0c;思想也都是基于观察者模式&#xff0c;正好 LiveData 的核心思想也是观察者模式&#xff0c;因此我们完…

做Android 开发这么久,还不明白 Android Framework 知识重要性?

Framework作为Android的框架层&#xff0c;为App提供了很多API调用&#xff0c;但很多机制都是Framework包装好后直接给App用的&#xff0c;如果不懂这些机制的原理&#xff0c;就很难在这基础上进行优化。 从做Android的第一天起&#xff0c;你一定听过无数次关于Framework的…

计算机音乐-乐理知识(1)

一、节拍 节拍&#xff08;Beat/Meter&#xff09;&#xff0c;是一个衡量节奏的单位&#xff0c;在音乐中&#xff0c;有一定强弱分别的一系列拍子在每隔一定时间重复出现。如 2 / 4 、 4 / 4 、 3 / 4 拍等。节拍&#xff0c;乐曲中表示固定单位时值和强弱规律的组织形式。 …

测试员工作三年后的工资对比,没达到这个数的都属于拖后腿了

“毕业三年的薪资是职场阶段的一个分水岭。” 不知什么时候开始&#xff0c;这句话深刻的引入了所有打工人的心中&#xff0c;程序员们自然也不例外。 事实上&#xff0c;这句话说的并不无道理&#xff0c;毕业的三年&#xff0c;不仅是学生到职场人身份上的一个转变&#xf…