代替swagger,Git拉去代码解析注释生成文档,gorgeous-doc华丽的文档

373 阅读4分钟

Git地址:gitee.com/lanyanhua/g…

演示地址:http://47.100.15.244/gorgeous/docs

联系方式:qq:3092575337、wx:lanyanhua1024、email:lanyanhua1024@163.com

特点: 通过git拉去项目文件进行解析注释注解生成API文档 零侵入,无需任何配置,独立运行,注释生成文档,支持读取swagger注解,自定义注释配置,在线调试

无损替换: 项目已引用swagger注解包,可以读取swagger注释 支持自定义注释读取,使用特定注释读取项目也可以无损替换

发布版:具体安装方式请打开码云地址 gitee.com/lanyanhua/g…

开始使用
添加项目
git地址、分支拉去代码用,上下文路径、端口配合环境信息调用接口

点击保存,需要等待一会。这里需要去拉去git上的代码

添加环境
环境是调用接口的配置,headerKey:ajax请求携带的header的key值在切换时进行修改

接口访问地址:【域名】+【项目端口】+【项目上下文】+【API的路径】

例子:【http://localhost】:【5160】/【gorgeous】/【project/listProjectAll】

切换:切换项目、分支、环境以及配置headkey的值

在线接口调试

原理就是ajax访问,不做多讲。

这里页面后面还会进行优化
修改接口类型(post,get,put,delete)
修改接口访问路径
添加请求参数
添加临时访问接口

菜单四个功能,API搜索、切换、更新、设置

搜索:class名称、class描述、API描述、API后段方法名称、API接口路径 切换:上面以及写了,这里是全局参数修改会刷新页面 更新:从新拉去分支代码解析文档 设置:项目、环境、注释配置

设置

项目管理、环境配置都是基本的增删改,重点说说配置管理,上传类

配置管理

配置管理主要是解析注释注解用,类型分注释五个、注解三个。这里有一个优先级注解》注释》默认注释

注释 【@Description:】
classTag
methodTag
methodParamTag
methodReturnTag
fieldTag
注解 【@Api(tags)】
classAnnotation
methodAnnotation
fieldAnnotation

下面是默认注释读取、自定义注释读取、注解读取解析原理(这块是核心能不能解析到想要的注释注解都是这个,看完不太理解的加联系方式滴滴我)

默认注释读取
class
/**
* {{类名称}}
* @author: lanyanhua
* @date: 2020/12/4 8:38 下午
*/
public class ProjectController {
}

方法
/**
* {{方法名称}}
* @param {{参数名称}} {{参数描述}}
* @return {{返回值描述}}
*/
public BaseResponse<Integer> addProject(@RequestBody ProjectAddVo vo) {
}

字段
/**
* {{字段描述}}
*/
private String name;


自定义注释注解
注释类型
 classTag
 methodTag
 methodParamTag
 methodReturnTag
 fieldTag
注解类型
 classAnnotation
 methodAnnotation
 fieldAnnotation

配置方式

注释 classTag @Description:
/**
 * @author: lanyanhua
 * @date: 2020/12/20 10:21 下午
 * @Description: {{自定义注释值}}
 */

注解 classAnnotation @Api(tags) "tags"注解取值字段
@Api(tags = "{{自定义注解值}}", produces = MediaType.APPLICATION_JSON_VALUE)

@Api源码
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Api {
    String value() default "";

    String[] tags() default {""};
    ...
}

这是页面

上传类

最后是一个功能,为啥要上传类呢?因为我这里解析的是源码,你那些在jar包中的类我是莫有的所以啊你得把这个类上传

看看页面,文件、包路径。这里需要注意类的路径千万不能错错了就解析不到

例子:

下面是类,文件就选这个类的文件就好了,包路径【com/github/pagehelper】。有注意到吗,这个类和包源码其实是不一样的,可以随便改哦

package com.github.pagehelper;

import java.util.List;

/**
 * 分页信息
 */
public class PageInfo<T> {
    /**
     * 当前页
     */
    private int pageNum;
    /**
     * 每页的数量
     */

    private int pageSize;
    /**
     * 当前页的数量
     */
    private int size;
    /**
     * 总页数
     */
    private int pages;
    /**
     * 总行数
     */
    protected long total;
    /**
     * 数据
     */
    protected List<T> list;
}

这里多提一嘴,这个文件上传的位置。要是你以及下载安装好了那么可以看到目录下有一个 repository 文件夹这个文件加是存放拉去代码的仓库,再看下面有一个public文件夹这个文件夹这里就是文件上传的位置,在解析代码时我会把这个public文件下的类全部加载和当前项目一起解析

优点很明显,不需要额外的注解,项目也不用依赖什么包

缺点也需要说一下

  • 开发时必须要提交代码到服务器才能这边才能拉去解析
  • 对多模块项目还有问题
  • 支持的项目目前只支持git svn还不支持
  • 只能解析springmvcAPI注解 缺点这里会在后面慢慢完善,开发环境在调用接口时允许修改请求方式、接口路径、接口参数,支持添加接口。多模块留了口子后面再补上。3、4看后面的使用情况吧

我认为这种方式还是很不错的,项目不需要集成生成API的技术更专注于业务,完成也有一段时间了在测试简化发布,欢迎大家来使用,也欢迎有兴趣的同学一起来完善

最后说一下gorgeous-doc这个名字真的超超超合适,优雅华丽的解决API文档问题,谢谢起名字的邓同志

原地址:blog.csdn.net/lanyanhua/a…