Java非侵入式API接口文档工具apigcc用法详解

一个非侵入的api编译、收集、Rest文档生成工具。工具通过分析代码和注释,获取文档信息,生成RestDoc文档

前言

程序员一直以来都有一个烦恼,只想写代码,不想写文档。代码就表达了我的思想和灵魂。

Python提出了一个方案,叫docstring,来试图解决这个问题。即编写代码,同时也能写出文档,保持代码和文档的一致。docstring说白了就是一堆代码中的注释。Python的docstring可以通过help函数直接输出一份有格式的文档,本工具的思想与此类似。

代码即文档

Apigcc是一个非侵入的RestDoc文档生成工具。工具通过分析代码和注释,获取文档信息,生成RestDoc文档。

有这样一段代码

/**
 * 欢迎使用Apigcc
 * @index 1
 */
@RestController
public class HelloController {

  /**
   * 示例接口
   * @param name 名称
   * @return
   */
  @RequestMapping("/greeting")
  public HelloDTO greeting(@RequestParam(defaultValue="apigcc") String name) {
    return new HelloDTO("hello "+name);
  }

}

使用方式

apiggs-maven-plugin

easy use apigcc with maven

安装

<plugin>
  <groupId>com.github.apiggs</groupId>
  <artifactId>apiggs-maven-plugin</artifactId>
  <version><!-- 替换为上方版本号 --></version>
  <executions>
    <execution>
      <phase>compile</phase>
      <goals>
        <goal>apiggs</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <!-- options in there -->
  </configuration>
</plugin>

when you compile source code, apiggs will build rest doc.

options

  • id 项目id,生成id.html文件
  • title 文档标题
  • description 文档描述
  • production 输出文件夹,默认为 apiggs
  • out 输出目录,默认为 target
  • source 源码目录
  • dependency 源码依赖的代码目录,以逗号隔开
  • jar 源码依赖的jar包目录,以逗号隔开
  • ignore 忽略某些类型
  • version 文档版本号

执行方法:

查看API文档:

另外,也可以放入容器远程访问,方法如下:

这里提供了一个已打好的jar

运行项目

gradlew build
cd service\build\libs
java -jar apigcc-hub-{version}.jar

浏览器访问http://127.0.0.1:8080

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JavaApi实现更新删除及读取节点

    1.更新 同步方式: /** * 三个参数 * the path of the node * the data to set * the expected matching version */ Stat stat = zooKeeper.setData("/set/node1", "NODE1".getBytes(), 1); 返回值Stat中封装了set命令中的返回值,可以通过Stat的各种get方法去获取. 异步方式: zooKeeper.setData(&q

  • Java 8 Stream Api 中的 map和 flatMap 操作方法

    1.前言 Java 8提供了非常好用的 Stream API ,可以很方便的操作集合.今天我们来探讨两个 Stream中间操作 map(Function<? super T, ? extends R> mapper) 和 flatMap(Function<? super T, ? extends Stream<? extends R>> mapper) 2. map 操作 map 操作是将流中的元素进行再次加工形成一个新流.这在开发中很有用.比如我们有一个学生集合,我们

  • java validation 后台参数验证的使用详解

    一.前言 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间.成本.质量的博弈中必然会落后.所以把校验层抽象出来是必然的结果,下面说下几种解决方案. 二.几种解决方案 1.struts2的valid可以通过配置xml,xml中描述规则和返回的信息,这种方式比较麻烦.开发效率低,不推荐 2.validation bean 是基于JSR-303标准开发出来的,使

  • Java Validation Api实现原理解析

    前言: 涉及知识点:AOP.拦截器相关 功能主要实现类:因为bean validation只提供了接口并未实现,使用时需要加上一个provider的包,例如hibernate-validator 范围: 注解:@Valid @RequestBudy 主要实现类:RequestResponseBodyMethodProcessor 处理器:HandlerMethodArgumentResolver 注解说明: @Valid:标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联

  • Springboot项目javax.validation使用方法详解

    javax.validation 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现. Hibernate-Validator是一个hibernate独立的包,可以直接引用,他实现了javax.validation同时有做了扩展,比较强大.SpringBoot在内部集成了hibernate-validation,可以直接使用. 常用注解: 代码 说明 @Null 被注解的元素必须为null @NotNull 被注解的元素必须不为null @Asser

  • Java Validation Api使用方法实例解析

    在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读.维护的成本会大大增加,造成冗余.因此有了这个JSR 303. Bean Validation为JavaBean提供了相应的API来给我们做参数的验证.通过Bean Validation比如@NotNull @Pattern等方法来对我们字段的值做进一步的教研. Bean Validation是一个运行时框架,在验证之后错误信息会直接返回. 依赖: <!--添加依赖--> <depe

  • JAVA中通过Hibernate-Validation进行参数验证

    在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用. 1.maven中引入hibernate-validator对应的jar: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4

  • Java调用腾讯云短信API接口的实现

    前言 有想使用短信API服务的朋友可以如果没有注册腾讯云的话可以注册一下,好像新用户可以免费领取100条短信服务(PS:绝对不是打广告) 一.登录腾讯云操作平台 登陆腾讯云的平台https://cloud.tencent.com/,登陆成功后搜索短信,进入短信产品的控制台,进入短信平台后,需要创建签名和创建正文模板. 1.创建签名模板 2.创建正文模板 这两步都需要审核,按照指引填写即可,一般时间会在2小时左右. 当你的签名审核通过后,在控制台可以看到签名的id和签名的内容,其中签名的内容在后续

  • Java非侵入式API接口文档工具apigcc用法详解

    一个非侵入的api编译.收集.Rest文档生成工具.工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. Python提出了一个方案,叫docstring,来试图解决这个问题.即编写代码,同时也能写出文档,保持代码和文档的一致.docstring说白了就是一堆代码中的注释.Python的docstring可以通过help函数直接输出一份有格式的文档,本工具的思想与此类似. 代码即文档 Apigcc是一

  • .NET Core利用swagger进行API接口文档管理的方法详解

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求变更只要涉及到接口的变更,文档都需要进行额外的维护,如果有哪个小伙伴忘记维护,很多时候就会造成一连续的问题,那如何可以更方便的解决API的沟通问题?Swagger给我们提供了一个方式,由于目前主要我是投入在.NET Core项目的开发中,所以以.NET Core作为示例 二.什么是Swagger S

  • java集成开发SpringBoot生成接口文档示例实现

    目录 为什么要用Swagger ? Swagger集成 第一步: 引入依赖包 第二步:修改配置文件 第三步,配置API接口 Unable to infer base url For input string: "" Swagger美化 第一步: 引入依赖包 第二步:启用knife4j增强 Swagger参数分组 分组使用说明 1.在bean对象的属性里配置如下注释 2.在接口参数的时候加入组规则校验 小结 大家好,我是飘渺. SpringBoot老鸟系列的文章已经写了两篇,每篇的阅读反

  • SpringBoot使用swagger生成api接口文档的方法详解

    目录 前言 具体例子 maven配置 项目application.yml配置 springApplication添加swagger注解 在控制层添加swagger注解 前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot系列文章: spring boot项目使用mybatis-plus代码生成实例 具体例子 maven配置 在使用之前,我们需要添加s

  • Django 自动生成api接口文档教程

    最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化测试 环境 Python3.6 ,PyCharm,W7 项目结构 功能实现 流程 我们要做的就是实现以上流程 安装 pip install djangorestframework pip install markdown pip install django-filter # Filtering s

  • java EasyExcel面向Excel文档读写逻辑示例详解

    目录 正文 1 快速上手 1.1 引入依赖 1.2 导入与导出 2 实现原理 2.1 @RequestExcel 与 @ResponseExcel 解析器 2.2 RequestMappingHandlerAdapter 后置处理器 3 总结 正文 EasyExcel是一款由阿里开源的 Excel 处理工具.相较于原生的Apache POI,它可以更优雅.快速地完成 Excel 的读写功能,同时更加地节约内存. 即使 EasyExcel 已经很优雅了,但面向 Excel 文档的读写逻辑几乎千篇一

  • Flask实现swagger在线文档与接口测试流程详解

    目录 1.什么是restful 2.swagger/openAPI能做什么 3.python如何实现swagger 4.flasgger的使用案例 5.完整代码 阅读对象:知道什么是restful,有了解swagger或者openAPI更佳. 1.什么是restful Representional State Transfer(REST):表征状态转移.是一种一种基于HTTP协议的架构.采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的

  • 对tensorflow中cifar-10文档的Read操作详解

    前言 在tensorflow的官方文档中得卷积神经网络一章,有一个使用cifar-10图片数据集的实验,搭建卷积神经网络倒不难,但是那个cifar10_input文件着实让我费了一番心思.配合着官方文档也算看的七七八八,但是中间还是有一些不太明白,不明白的mark一下,这次记下一些已经明白的. 研究 cifar10_input.py文件的read操作,主要的就是下面的代码: if not eval_data: filenames = [os.path.join(data_dir, 'data_b

  • Java常用API类之Math System tostring用法详解

    1.注意(类名不能与math重名,否则可能报错误) 1.math:可以直接拿来用的接口类 Math.abs(-90);返回参数的绝对值 Math.max(60,98)返回参数的最大值 Math.random()*100随机函数:随机输出一个数 等等 public static void main(String[] args){ int a = 1300, b = 1000; System.out.println(Math.abs(-90)); System.out.println(Math.ma

  • Java制作证书的工具keytool用法详解

    目录 一.keytool的概念 二.keytool的用法 三.创建证书 四.查看密钥库里面的证书 五.导出到证书文件 六.导入证书 七.查看证书信息 八.删除密钥库中的条目 九.修改证书条目的口令 一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.

随机推荐