Eolink神技之四、IDEA工具插件Eolink ApiKit

简介: Eolink神技之四、IDEA工具插件Eolink ApiKit


前言

我们在开发过程中会有很多小伙伴一起来做协作开发,但是会出现一个问题,就是每个人的注释习惯都不相同,那么,我们在后续了解程序的时候就很麻烦,Eolink提供的这个功能就非常棒,可以直接自动全代码注释,我们只需要填写少量的关键字即可。非常的方便高效,并且统一了注释规范。在本博客中,我会先演示自动全代码注释,之后会根据我们注释的内容一键式上传到我们的Eolink进行批量测试。

一、自动全代码注释

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());
    }
}

1.1测试环境

测试语言:Java

系统环境:win10

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

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

1.2Eolink Apikit安装

1.2.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>

1.2.2操作位置

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

1.2.3搜索并安装【Eolink ApiKit】

这里需要按照步骤操作:

1、选择【Plugins】。

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

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

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

1.2.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】即可引入。

1.2.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

2.1配置服务信息

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

操作步骤:

1、搜索Eolink

2、选择Eolink Settings

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

4、输入注册账号

5、StringType选择【camelCase(default)】

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

2.2Server获取

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

2.3SpaceKey获取

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

2.4ProjectHashKey获取

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

2.5选择上传分组

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

添加分组

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

查看未上传的组。

修改注释

2.6一键上传API——单个API上传

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

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

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

成功效果:

2.7一键上传API——上传所有API

选择【Upload All Api】

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

成功效果:

2.8接口测试

测试成功:

体验地址:

IDEA工具插件Eolink ApiKit

三、接口注释

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

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 Eolink");
    }
}

体验地址:

IDEA工具插件Eolink ApiKit

相关文章
|
2月前
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
8天前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
54 6
|
2月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
187 4
可直接编辑jar包的IDEA插件-JarEditor
|
1月前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
497 11
|
1月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
45 0
|
2月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
|
1月前
|
IDE Java Maven
分享几个实用的IDEA插件,提高你的工作效率!
分享几个实用的IDEA插件,提高你的工作效率!
134 0
|
3月前
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
120 1
【插件】IDEA这款插件,爱到无法自拔
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
Java
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
这篇文章详细介绍了10款IntelliJ IDEA的高效插件,包括Codota代码智能提示、Key Promoter X快捷键提示、CodeGlance代码缩略图、Lombok代码简化、阿里巴巴代码规范检查、SonarLint代码质量检查、Save Actions格式化代码、Translation翻译、Rainbow Brackets彩虹括号和Nyan Progress Bar彩虹进度条插件,旨在帮助提升开发效率和代码质量。
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍