团队高效率协作开发的秘密武器-APIDOC

团队高效率协作开发的秘密武器

1.前言

在团队协作开发中,不知道各位有没有遇到这样的问题:

l 新人接手了项目代码,因没有项目文档,只能靠追踪路由,寻读代码分析业务逻辑

l 前端同学写好了页面,苦等后端接口规则,来写交互请求,获取数据

l 测试同学写测试用例,因项目还没完成,而迟迟无法开工

如何愉快地解决以上问题呢?答案就是它——APIDOC。

2.APIDOC是什么

APIDOC是一款Web API文档生成工具,可以根据代码注释自动生成静态html网页文档,不仅支持项目版本号,还支持接口版本号,接口版本更新升级后,文档接口可以很方便地对比阅读。像这样的接口文档生成工具有很多,如Java语言有Javadoc、PHP语言有PHPDoc、Python语言有Pydoc等,为什么要选择用它呢,因为它跨语言,不管你是用js、ruby、java、php、python、c#…,只要按规则写好注释,前后端兄弟都能用。让我们一起来见证它的强大之处吧。

3.先看看使用效果

整体一览~

图1

接口变更啦,比对阅读一下,清晰明白~

图2

看看返回数据,测试一发,可以开始写测试用例啦~

图3

4.具体实现流程

0x01 安装

Windows环境下安装方法:

  1. 官网nodejs.org下载nodejs
  2. 安装好后将npm 替换为淘宝镜像cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

3.使用cnpm安装apidoc

cnpm install apidoc -g

0x02 用法

apidoc -i myproj/ -o mydoc/ [-c ./] -f ".*.js$"

-i 表示输入,myproj是项目文件夹路径

-o 表示输出,mydoc是要生成的接口文档路径

默认会带上-c,在当前路径下寻找配置文件(apidoc.json)

-f 为文件过滤,后面是正则表达式,示例为只选js文件

与-f类似,还有一个 -e 的选项,表示要排除的文件/文件夹,也是使用正则表达式

0x03 配置

新建apidoc.json文件,可参照官方配置示例

{
  "name": "example",
  "version": "0.0.1",
  "description": "apiDoc basic example",
  "title": "Custom apiDoc browser title",
  "url" : "https://api.github.com/v1"
}

 

我的配置如下:

{
  "name": "APP项目接口",
  "version": "0.0.1",
  "description": "测试文档",
  "title": "APP项目接口",
  "url" : "http://www.api.com/v1",
  "sampleUrl" : "http://www.api.com/v1",
  "order": ["User","Article"],

}

  

配置属性简单介绍

name:项目名称

version:项目版本

description:项目介绍

title:浏览器显示的标题内容

url:请求的前缀,例如https://api.github.com/v1

sampleUrl:如果设置了,则在api文档中出现一个测试用的from表单

order:用于配置输出接口组的顺序

0x04 操作

1.在含有apidoc.json的文件夹(例如myproj)下新建myapp文件夹和mydoc文件夹,在myapp文件夹下新建user.php(注意文件格式要保存为utf-8,否则生成的API文档带中文的注释会产生乱码),我的user.php部分代码如下:

<?php

class User

{

/**

* @api {POST} /register 注册用户
* @apiGroup User
* @apiVersion 0.0.2
* @apiDescription 用于注册用户
* @apiParam {String} account 用户账户名
* @apiParam {String} password 密码
* @apiParam {String} mobile 手机号
* @apiParam {int} company = 0  是否注册企业用户 0 普通用户 1 企业用户
* @apiParam {String} [recommend] 邀请码
* @apiSampleRequest http://www.api.com/server.php
* @apiParamExample {json} 请求样例:
*                ?account=test&password=11223344&mobile=182xxxx2345&company=0&recommend=
* @apiSuccess (200) {String} msg 信息
* @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
* @apiSuccessExample {json} 返回样例:
*                {"code":"0","msg":"注册成功"}

*/

    public function register () { # code... }

/**

* @api {POST} /login 用户登录
* @apiGroup User
* @apiVersion 0.0.1
* @apiDescription 用于用户登录
* @apiParam {String} userName 用户名
* @apiParam {String} password 密码
* @apiParamExample {json} 请求样例:
*                ?userName=张三&password=11223344
* @apiSuccess (200) {String} msg 信息
* @apiSuccess (200) {String} code 0 代表无错误 1代表有错误
* @apiSuccess (200) {String} user 用户信息
* @apiSuccess (200) {String} userId 用户id
* @apiSuccessExample {json} 返回样例:
*    {"code":"0","msg":"登录成 功","userId":"1"}

*/

   public function login() { # code... }

}

  

2.回到myproj文件夹下,按住shift键并点击鼠标右键选择“在此处打开命令窗口”,在cmd命令窗口中执行如下命令:

apidoc -i myapp/ -o mydoc/

3.打开mydoc文件夹可以看到生成了含有index.html的网页文档,用浏览器打开index.html文件即可浏览文档效果图。

5.遇到的问题

问题一:

在浏览器打开静态文档下,选择相关接口,发送请求,收不到返回的json数据,打开浏览器F12中选择console可以看到,存在跨域问题。

解决办法:

将生成的api文档mydoc文件夹放在访问接口的同域名下(如使用效果图图3),通过域名访问该index.html文件。

问题二:

使用效果图中的接口组名(@apiGroup参数对应值)-“User”和“Article”换成中文后,在浏览器中打开显示为乱码。

解决办法:

主要是 @apiGroup 不支持utf-8 字符串,仅支持ascii码。官方有个办法可以实现utf-8字符串放置在@apiGoup 中。 代码如下:

/**
 * @apiDefine User 用户接口
 */

/**
 * @api {POST} /login 用户登录
 * @apiGroup User
*/

解决效果

图4

6.总结

以上只是抛砖引玉,apidoc还有更多的用法,具体的介绍可以去官网查看,快来动手练练吧,掌握这款工具,带领团队吃鸡,无往而不利 。

原文地址:https://www.cnblogs.com/mrwh/p/11553123.html

时间: 2024-08-28 08:17:21

团队高效率协作开发的秘密武器-APIDOC的相关文章

一小时精通SVN版本控制 之五 团队协作开发

假设一个团队有一个项目经理,两个开发人员协作开发一个项目: 第一步:由项目经理创建项目 1.在服务端新建仓库用于存放项目. 2.在myeclipse中创建项目:选中项目右键->team->share project->svn->使用已有资源库位置->选择要保存项目的仓库 3.选中项目右键->team->提交 则可以将项目提交到仓库. 第二步:项目组成员从仓库中获取项目   打开myeclipse 空白处 右键->import->svn->从svn

利用[email&#160;protected]进行团队协作开发平台

利用[email protected]进行团队协作开发平台 [email protected]介绍 [email protected] 是一个团队协作开发平台,轻松管理轻量级团队.代码运行平台(PaaS).代码质量检查应有尽有. 链接:https://team.oschina.net/ 使用过程 登录网站,进行注册 图1: 注册帐号ID为:牛奶巧克力 用户名为:qiaokeli66 注册成功后进入主界面 团队功能的使用 图2: 在页面右下角点击添加组员 录入自己的信息之后,我开始向组员发起加入邀

Unity3D 多人协作开发svn 环境搭建

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 说到多人协作开发,大家都会想到要使用版本控制工具来管理项目,当然最常用的要数SVN和Git了,但是SVN管理Unity3D项目的确有一些不尽人意的地方,比如:两个人修改了同一个场景,SVN更新时就不能合并 ,还有在Unity Editor 中SVN不可视化,不友好!

Git详细教程---多人协作开发

Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非常好的解决方案 ---- 多人协作开发. 1.多人协作原理 典型的做法是,首先创建一个git服务器,被多个人所操作. 1.多人协助实现 分为如下几个步骤: 1.创建一个git裸服务器 (git init --bare) 2.从裸服务器将版本库克隆至本地(git clone ) 3.本地常规操作 4.

Stack Overflow创始人分享:如何促使团队紧密协作

会议是浪费工作时间的最佳去处 今天你开了多少个会?这个星期呢?这个月呢?再自问一下,那些会议中有多少是值得参加的?如果把相同的时间用在工作上,你又能完成多少事情?我们究竟为什么要开会? 尽管有些会议是不可避免的,甚至是必需的.我们应该以怀疑的态度去看待会议,把它当成是一种降低工作效率的风险.事实上,会议往往只是在浪费宝贵的工作时间.就我而言,我采用以下几个原则,以确保我的会议是真正有用的. 会议绝不该超过一小时,否则应判以死刑 对于任何会议,第一个并且最重要的约束就是时间,因为它在任何公司都是最

GitHub 多人协作开发 三种方式:

GitHub 多人协作开发 三种方式: 一.Fork 方式 网上介绍比较多的方式(比较大型的开源项目,比如cocos2d-x) 开发者 fork 自己生成一个独立的分支,跟主分支完全独立,pull代码后,项目维护者可根据代码质量决定是否merge代码 此方式网上方法比较多,这里不详细描述 二.组织 组织的所有者可以针对不同的代码仓库建立不同访问权限的团队. Accounts Settings => Organizations =>Create new Organizations 新建一个组织

C#秘密武器之扩展方法

为何要用扩展方法? 作为一个.NET程序猿,我们经常要跟.net自带类库或者第三方dll类库打交道,有时候我们未必能够通过反编译来查看它们的代码,但是我们通常需要给它们扩充一些新的功能,Helper类就应运而生了,我们开发出一个个的静态方法以方便调用.久而久之,我们封装的Helper类越来越多,但是这个Helper里边的方法不一定为每个开发人员所熟知,而且我们每每要敲击XXXHelper.XXX()这种类似的方法,其实这个XXXHelper完全是可以省略掉的,等于是我们每次都多写了这么一点东西.

[email&#160;protected]中协作开发、复制项目、贡献代码

git@osc可以让我们托管代码,进行版本控制,同svn等类似平台一样,可以帮助我们实现团队协作开发,无论你是否是项目团队成员.本教程完全适用GitHub 1. 概念 协作开发:顾名思义,就是由多个项目成员共同开发一个项目. fork:GitHub提供非常方便功能,可以一键将其他人的项目复制到自己账号下. pull request:非项目成员贡献代码一种方式. 2. [email protected]如何协作开发 由项目创建者进入指定项目,在菜单栏上点击"设置",会看到如下界面 然后点

Unity3D 多人协作开发 环境搭建 笔记(场景合并)

http://www.cnblogs.com/zhaoqingqing/p/3371120.html 说到多人协作开发,大家都会想到要使用版本控制工具来管理项目,当然最常用的要数SVN和Git了,但是SVN管理Unity3D项目的确有一些不尽人意的地方,比如:两个人修改了同一个场景,SVN更新时就不能合并,还有在Unity Editor 中SVN不可视化,不友好! 我们团队初期也是使用SVN,在本地文件夹中进行提交和更新.记录一下我们一路走来的历程…… 下面记录一下我们团队使用版本管理工具的过程