RESTful API 文档生成工具,支持 Go、Java、Swift、JavaScript、Rust、PHP、Python 和 Ruby 等大部分语言。
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

apidoc Build Status Go version Go Report Card license codecov

apidoc 是一个简单的 RESTful API 文档生成工具,它从代码注释中提取特定格式的内容,生成文档。 目前支持支持以下语言:C#、C/C++、D、Erlang、Go、Groovy、Java、JavaScript、Pascal/Delphi、 Perl、PHP、Python、Ruby、Rust、Scala 和 Swift。

具体文档可参考:http://apidoc.tools

/**
 * @api get /users 获取所有的用户信息
 * @apiGroup users
 * @apiQuery page int 显示第几页的内容
 * @apiQuery size int 每页显示的数量
 *
 * @apiSuccess 200 ok
 * @apiParam count int 符合条件的所有用户数量
 * @apiParam users array 用户列表。
 * @apiExample json
 * {
 *     "count": 500,
 *     "users": [
 *         {"id":1, "username": "admin1", "name": "管理员2"},
 *         {"id":2, "username": "admin2", "name": "管理员2"}
 *     ],
 * }
 * @apiExample xml
 * <users count="500">
 *     <user id="1" username="admin1" name="管理员1" />
 *     <user id="2" username="admin2" name="管理员2" />
 * </users>
 */
func login(w http.ResponseWriter, r *http.Request) {
    // TODO
}

安装

go get github.com/caixw/apidoc

支持多种本地化语言,默认情况下会根据当前系统所使用的语言进行调整。若需要手动指定, windows 可以设置一个 LANG 环境变量指定,*nix 系统可以使用以下命令:

LANG=lang apidoc

将其中的 lang 设置为你需要的语言。

集成

若需要将 apidoc 当作包集成到其它 Go 程序中,可分别引用 inputoutput 的相关函数:

// 初始本地化内容
locale.Init()

// 分析文档内容
inputOptions := &input.Options{
    ErrorLog: log.New(...),
}
docs, elapsed := input.Parse(inputOptions)

// 输出内容
outputOptions := &output.Options{...}
outputOptions.Elapsed = elapsed
if err = output.Render(docs, outputOptions); err != nil {
    panic(err)
}

参与开发

请阅读 CONTRIBUTING.md 文件的相关内容。

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。