文章详情页 您现在的位置是:网站首页>文章详情
基于注释的接口文档工具apidoc
Jeyrce.Lu
发表于:2020年7月7日 11:32
分类:【Python】
3854次阅读
apidoc是一种基于代码注释自动生成api文档的工具,支持python、java、js、perl等多种语言,使用还是比较简单的。

安装工具包
sudo apt install -y npm sudo npm install -g apidoc
apidoc配置
apidoc需要一份配置文件来确定生成文档的格式等信息
方式一、apidoc.json
{
"name": "Control Infinite API文档",
// 文档名称
"version": "6.3.0",
"description": "Control Infinite项目相关API接口文档",
"title": "QData API",
"url": "http://127.0.0.1:11100",
"sampleUrl": "",
"header": {
"title": "Overview",
"filename": "header.md"
},
"footer": {
"title": "Copyright",
"filename": "footer.md"
},
"order": [], // 根据apiGroup进行排序,没有在列表中的分组自动放到后面
"template": {
"forceLanguage": "en", // 本地化
"withCompare": true,
// 是否和旧版本api对比
"withGenerator": false,
// 底部是否输出构建信息
"aloneDisplay": false, // 当点击某个菜单仅显示此部分内容
}
}方式二、package.json
此方式需要将方式一中apidoc.json内容放到一个叫做apidoc的字段中
{
"name": "example",
"version": "0.1.0",
"description": "apiDoc basic example",
"apidoc": {
"title": "Custom apiDoc browser title",
"url" : "https://api.github.com/v1"
}
}api注释(python代码为例)
class FilterLogHandler(ApiHandler):
def get(self, key):
"""
@:keyword select arbiter logs
@api {get} /longhaul/cluster/arbiterlog(?:<key>) 筛选日志
@apiVersion 6.3.0
@apiGroup mxvote
@apiPermission admin
@apiDescription 按条件筛选查询仲裁日志
@apiParam {string="month","halfyear", "year","all"} time 查询的时间范围
@apiParam {string="stop","start","all"} event 查询的事件
@apiParam {int} cluster_id 集群id
@apiParam {int} [count=20] 分页每页的行数
@apiParam {int} [page=1] 分页的当前页数
@apiParamExample {json} Request-Example:
{
"time": "month",
"event": "stop",
"cluster_id": 21,
"count": 15,
"page": 2
}
@apiSuccess {string} time 日志生成时间
@apiSuccess {string} notice 事件的详细描述
@apiSuccessExample {json} Success-Response:
{
"data": [
{
"notice": "主机sto19(10.10.90.19)MXVote服务停止。请尽快恢复服务,避免双活集群停止服务",
"time": "2017-12-11 11:12:45"
}
],
"message": "",
"error_code": 0
}
"""
schema_get = Schema({
"time": UTF8,
"event": UTF8,
"cluster_id": Use(int),
Optional("count"): Use(int),
Optional("page"): Use(int),
})
url_data = self.get_data(schema_get)
# 获取分页参数
page, count, offset = self.pagination_params
url_data["offset"] = offset
url_data["count"] = count
data = FilterLog.get_arbiter_log(url_data)
self.success_response(data)生成api文档
# 在apidoc.json所在目录执行 # -o 输出位置 # -i 输入 # -t 模板位置(可不指定使用默认) apidoc -i myapp/ -o apidoc/ -t mytemplate/ # 之后项目下会生成一个apidoc目录,在浏览器打开index.html即可看到效果
版权声明 本文属于本站 原创作品,文章版权归本站及作者所有,请尊重作者的创作成果,转载、引用自觉附上本文永久地址: http://blog.lujianxin.com/x/art/jc533sub1tbe
上一篇:Linux软连接和硬链接
下一篇:网络设备科普
猜你喜欢
文章评论区
作者名片
- 作者昵称:Jeyrce.Lu
- 原创文章:61篇
- 转载文章:3篇
- 加入本站:2387天
作者其他文章
站长推荐
友情链接
站点信息
- 运行天数:2388天
- 累计访问:164169人次
- 今日访问:0人次
- 原创文章:69篇
- 转载文章:4篇
- 微信公众号:第一时间获取更新信息
