当前位置: 首页 > news >正文

REST开放接口生成文档工具之apidoc

一、安装node.js环境

感谢阿里云,下载的链接http://npm.taobao.org/mirrors/node/latest-v6.x/

二、安装apidoc

npm install apidoc -g

三、背景准备

1.以Java为例,新建一个java项目,假设名为test。

2.新建一个文本文件,命名apidoc.json,放置在test项目src根目录下。
3.新建一个Java文件,假设名为Test.java。

四、编写apidoc.json

这是在自动生成文档时的基础设置信息。

{
  "name": "apidoc-example",
  "version": "0.3.0",
  "description": "apiDoc example project",
  "title": "Custom apiDoc browser title",
  "url" : "https://api.github.com/v1",
  "header": {
  "title": "My own header title",
  "filename": "header.md"
},
"footer": {
  "title": "My own footer title",
  "filename": "footer.md"
},
"order": [
  "GetUser",
  "PostUser"
],
"template": {
  "withCompare": true,
  "withGenerator": true
}
}

 

五、一个GET请求的示例

打开Test.java文件,在文件内写入以下注释。

/**
* @api {get} /pokka/:id pokka
* @apiName 获取指定Pokka
* @apiVersion 0.1.0
* @apiGroup Pokka
* @apiDescription 这是描述信息,可以有多行。
* @apiExample {curl} 接口示例: 
* curl -i http://localhost/pokka/4711
* @apiHeader {String} access-key 请求头必须携带字段access-key
* @apiHeaderExample {json} 头部示例: 
* { 
* "access-key": "按照约定加密方式产生的token==" 
* }
* 
* @apiSuccess (200) {String} firstname 姓氏
* @apiSuccess (200) {String} lastname 名称
* 
* @apiSuccessExample {json} 成功的响应: 
* HTTP/1.1 200 OK 
* {
* "firstname": "John", 
* "lastname": "Doe" 
* }
* 
*/

这些注释相对简单,能直观的看出来定义了

1. 接口格式(必选)
2. 接口名称
3. 接口版本
4. 接口所属组(必选)
5. 接口描述信息
6. 接口格式示例
7. 接口头定义
8. 接口头示例
9. 接口成功响应定义

六、接口成功响应示例

实际情况中,还会遇到携带参数的POST请求、错误的响应等等更多API描述需求。

更多的学习api地址:http://apidocjs.com/#params

七、最终的执行

命令格式为apidoc -i 项目实际目录 -o 希望输出到的目录

例如apidoc -i D:\workspace\test -o D:\api-output

八、得到的结果

如果没有报错的话,进入D:\api-output,双击index.html就可以看到漂亮的接口文档了。

例如此例得到的描述页面。

转载于:https://www.cnblogs.com/yoyotl/p/6376624.html

相关文章:

  • 自建Maven仓库 - Artifactory
  • 微信管理
  • 推荐一个提升工作效率的小插件[intellij-postfix-templates]
  • 面试(1)
  • ios - 关于拖动手势简单应用场景
  • 第二课、GUI程序实例分析------------------狄泰软件学院
  • 第五课、Qt Creator 工程介绍------------------狄泰软件学院
  • PL/pgSQL RETURNS TABLE 例子
  • 贝塞尔曲线学习
  • 2007浙大复试上机考试题目2--统计字符
  • static作用(修饰函数、局部变量、全局变量)
  • 18 Issues in Current Deep Reinforcement Learning from ZhiHu
  • PC 微信扫码登陆
  • 创建表空间、新增用户、给用户赋予DBA权限 、删除用户下的上有数据表
  • 欢迎大家关注民工哥个人微信公众号
  • #Java异常处理
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Invalidate和postInvalidate的区别
  • JavaScript设计模式系列一:工厂模式
  • Javascript设计模式学习之Observer(观察者)模式
  • SpiderData 2019年2月13日 DApp数据排行榜
  • spring security oauth2 password授权模式
  • 阿里云应用高可用服务公测发布
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 入手阿里云新服务器的部署NODE
  • 小程序测试方案初探
  • 移动端 h5开发相关内容总结(三)
  • 主流的CSS水平和垂直居中技术大全
  • 你对linux中grep命令知道多少?
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 阿里云API、SDK和CLI应用实践方案
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​flutter 代码混淆
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (新)网络工程师考点串讲与真题详解
  • (原創) 未来三学期想要修的课 (日記)
  • (转)http协议
  • (转)用.Net的File控件上传文件的解决方案
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .Net 路由处理厉害了
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET处理HTTP请求
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .sdf和.msp文件读取
  • @ComponentScan比较
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [20181219]script使用小技巧.txt
  • [C/C++]数据结构 堆的详解
  • [CTSC2014]企鹅QQ