apidoc简述
•
apidoc基于nodejs,代码开源。
•
apidoc根据代码中以规范格式编写的注释,创建说明文档,文档为html格式,能够发布出去。
•apidoc支持众多编程语言的文档生成:C#、Java、JavaScript、Python、Golang、Php等。
•官网地址[1]
•github项目地址[2]
apidoc安装
•检查本地是否有nodejs环境:node -v
•安装nodejs•下载[3]•解压
•xz xxx.tar.xz•tar -xvf xxx.tar
•sudo ln -s usr/local/node/bin/node usr/local/bin/•sudo ln -s usr/local/node/bin/npm usr/local/bin/•切换npm镜像服务
•$ npm config set registry https://registry.npm.taobao.org/•npm config get registry
•检查是否已安装apidoc:apidoc -h
•npm install apidoc -g•sudo ln -s usr/local/node/bin/apidoc usr/local/bin/
apidoc使用
•
初始化apidoc.json
•
在项目根目录下创建apidoc.json文件,
•
apidoc.json内容实例
{
"name": "example",
"version": "0.1.0",
"description": "apiDoc basic example",
"title": "Custom apiDoc browser title",
"url" : "https://api.github.com/v1"
}
- 参数含义
| 参数 | 说明 |
| ----------- | ------------------------------------------------------------ |
| name | 项目名称 |
| version | 项目版本 |
| description | 项目描述 |
| title | 浏览器标题 |
| url | api路径前缀 会自动拼接到@api 路径前,可以设置为空串 |
| sampleUrl | 如果设置,将显示用于测试api方法(发送请求)的表单。有关详细信息,请参阅[@apiSampleRequest](http://apidocjs.com/#param-api-sample-request)。|
| header | api文档的头 |
| title | 左侧导航栏中显示的文本 |
| filename | 内容文件,为md(markdown)格式,可以写前言等项目边角信息 |
| footer | 与header相同,只不过一个在头,一个在尾,不再赘述 |
| title | |
| filename | |
| order | 排序 |
•
添加api注释
•
api注释是apidoc自定义的,用于生成文档的注释。
•
apidoc按注释快解析注释,两个注释快如下:
•
/**
* @api {get} /user/{id} 获取用户信息
*/
/**
* @api {put} /user/{id} 修改用户信息
apidoc仅解析含有@api或@apiDefine的注释块。一个注释块仅能有一个@apiDefine。
•@apiGroup不支持中文,需要和@apiDefine配合使用来支持中文。
•apidoc参数说明
| 参数 | 说明 | | :--------: | :----------------------------------------: | | @api | 定义api | | @apiDefine | 定义通用内容:请求参数、返回值、错误列表等 | | @apiGroup | api组属 | | @apiName | api名称 |
/**
*
* @api {get} /v1/user/list
* @apiDescription 用户列表
* @apiGroup User
* @apiName userlist
* @apiVersion 0.1.0
*
*
* @apiExample {curl} 访问示例:
* curl -i http://0.0.0.0:8765/v1/user/list/
*
* @apiSuccess (200) {Int} code StatueCode状态码.
* @apiSuccess (200) {String} message Message提示信息.
* @apiSuccess (200) {Map} data Data返回数据.
* @apiSuccessExample Success-Response:
* HTTP/1.1 200 OK
* {
* "code": "200",
* "message": "success",
* "data":{}
* }
* @apiErrorExample Error-Response:
* HTTP/1.1 10020 Not Found
* {
* "code": "10020",
* "message": "fail",
* }
*/
.cs.dart.erl.go.java.js.php.py.rb.tsapidoc -f ".*\.js$" -f ".*\.ts$"
References
[1][2][3]