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]