技术文章第一时间送达! 源码精品专栏
在服务端开发过程中,我们需要提供一份 API 接口文档给 Web 端和移动端使用。实现 API 接口文档编写工作,有很多种方式,例如通过 Word 文档编写,或者通过 MediaWiki 进行维护。此外,还有比较流行的方式是利用 Swagger 自动化生成文档。这里,笔者想分享另一个 Web API 文档生成工具 apidoc。 apidoc 是通过源码中的注释来生成 Web API 文档。因此,apidoc 对现有代码可以做到无侵入性。此外,apidoc 可以支持多种语言 C#, Go, Dart, Java, JavaScript, PHP, TypeScript (all DocStyle capable languages),CoffeeScript,Erlang,Perl,Python,Ruby,Lua。通过 apidoc 可以非常方便地生成可交互地文档页面。 开始入门首先,我们需要 node.js 的支持。在搭建好 node.js 环境后,通过终端输入 npm 命名进行安装。 npm install apidoc -g 接着,我们还需要添加 apidoc.json 文件到项目工程的根目录下。
这里,笔者主要演示 Java 注释如何和 apidoc 结合使用。现在,我们先来看一个案例。 /** 最后,我们在终端输入 apidoc 命令进行文档生成。这里,我们用自己的项目工程的根目录替代 myapp/,用需要生成文档的地址替代 apidoc/。
例如,笔者的配置是这样的。 apidoc -i /Users/lianggzone/Documents/dev-space/git-repo -o /Users/lianggzone/Documents/dev-space/apidoc/ 代码注释@api@api 标签是必填的,只有使用 @api 标签的注释块才会被解析生成文档内容。格式如下:
这里,有必要对参数内容进行讲解。
@apiDescription@apiDescription 对 API 接口进行描述。格式如下: @apiDescription text @apiGroup@apiGroup 表示分组名称,它会被解析成一级导航栏菜单。格式如下: @apiGroup name @apiName@apiName 表示接口名称。注意的是,在同一个 @apiGroup 下,名称相同的 @api 通过 @apiVersion 区分,否者后面 @api 会覆盖前面定义的 @api。格式如下: @apiName name @apiVersion@apiVersion 表示接口的版本,和 @apiName 一起使用。格式如下:
@apiParam@apiParam 定义 API 接口需要的请求参数。格式如下: @apiParam [(group)] [{type}] [field=defaultValue] [description] 这里,有必要对参数内容进行讲解。
类似的用法,还有 @apiHeader 定义 API 接口需要的请求头,@apiSuccess 定义 API 接口需要的响应成功,@apiError 定义了 API 接口需要的响应错误。 这里,我们看一个案例。
此外,还有 @apiParamExample,@apiHeaderExample, @apiErrorExample,@apiSuccessExample 可以用来在文档中提供相关示例。 @apiPermission@apiPermission 定义 API 接口需要的权限点。格式如下: @apiPermission name 此外,还有一些特别的注解。例如 @apiDeprecated 表示这个 API 接口已经废弃,@apiIgnore 表示忽略这个接口的解析。关于更多的使用细节,可以阅读官方文档:http:///#demo 完整的案例最后,我们用官方的案例,讲解下一个完整的配置。 首先,配置 apidoc.json,内容如下:
接着,我们配置相关的 Java 源码注释。 /** 然后,执行命名生成文档。
生成的页面,如下所示。 如果你对 Dubbo 感兴趣,欢迎加入我的知识星球一起交流。 目前在知识星球(https://t./2VbiaEu)更新了如下 Dubbo 源码解析如下: 05. 拓展机制 SPI 06. 线程池 07. 服务暴露 Export 08. 服务引用 Refer 09. 注册中心 Registry 10. 动态编译 Compile 11. 动态代理 Proxy 12. 服务调用 Invoke 13. 调用特性 14. 过滤器 Filter 15. NIO 服务器 16. P2P 服务器 17. HTTP 服务器 18. 序列化 Serialization 19. 集群容错 Cluster 20. 优雅停机 21. 日志适配 22. 状态检查 23. 监控中心 Monitor 24. 管理中心 Admin 25. 运维命令 QOS 26. 链路追踪 Tracing ... |
|