您的位置:首页 > 编程语言

Github开源项目之APIDOC

2016-01-20 10:22 357 查看

介绍

生成Restful web API文档,支持大部分的语言,java 、javascript、 php、 python、 c # 、ruby

注意:它是根据你源码中的API注释来生成相应的文档的。

github: https://github.com/apidoc/apidoc/

github examples:http://apidocjs.com/#examples

a complex example:http://apidocjs.com/#example-full


使用

通过一个小例子来说明如何使用。

1、首先安装Node.js(自行百度)

   因为apiDoc是一个node module,所以首先必须安装node.js

2、安装apiDoc 

   npm install -g apidoc

3、这里选用一个javascript例子来说明,新建一个目录my_project,然后在该目录下新建example.js

1)首先,我们对getUser()方法做一个最基本的标注文档

var currentUser = {
    name: 'Mary'
};

/**
 *@api{get}/user Request User information
 *@apiName GetUser
 *@apiGroup User
 *{
 *name:'Paul',
 *age:27
 *}
 */
function getUser() {
    return {
        code: 200,
        data: currentUser
    };
}

function setName(name) {
    if (name.length === 0) {

        return {
            code: 404,
            message: 'NameEmptyError'
        };
    }
    currentUser.name = name;
    return {
        code: 204
    };
}

@api 客户端调用该方法的路径
@apiName 唯一标识的名称,可以任意命名,推荐命名方式,方法类型和方法名的组合,例如{get}和/user=>GetUser
@apiGroup 该方法属于的组名。组名将用于导航
注意:以上三个参数是必须的。

好,我们现在转到my_project目录下,在cmd中运行apidoc

    apidoc

这里,注意下,如果使用默认的apidoc,它会在当前目录和子目录下搜索所有的文件(可识别的文件包括.js、.java等等),你可以设置文件过滤,可以通过apidoc -h查询更多信息。



打开doc/index.html文件



2)现在我们添加API的响应注释

/**
*@api{get}/user Request User information
*@apiName GetUser
*@apiGroup User
*@apiSuccess{String}name The users name
*/
function getUser() {
return {
code: 200,
data: currentUser
};
}


重新运行apidoc,覆盖doc目录。



3)增加版本号和示例信息

/**
*@api{get}/user Request User information
*@apiName GetUser
*@apiGroup User
*@apiVersion 0.1.0
*@apiSuccess{String}name The users name
*@apiSuccessExample Example data on success
*{
* name:'Paul'
*}
*/
function getUser() {
return {
code: 200,
data: currentUser
};
}




4)如果要发布新的版本,可能有很多接口信息需要变动。我们新建一个"_apidoc.js"文件,将之前的注释信息放入文件中。

_apidoc.js

/**
*@api{get}/user Request User information
*@apiName GetUser
*@apiGroup User
*@apiVersion 0.1.0
*@apiSuccess{String}name The users name
*@apiSuccessExample Example data on success
*{
* name:'Paul'
*}
*/"_apidoc.js表示注释信息的历史文件"
现在我们在新文件中改变example.js文件

/**
*@api{get}/user Request User information
*@apiName GetUser
*@apiGroup User
*@apiVersion 0.2.0
*@apiSuccess{String}name The users name
*@apiSuccess{Number}age Calculated age from Birthday
*@apiSuccessExample Example data on success
*{
* name:'Paul',
* age:27
*}
*/
function getUser() {
return {
code: 200,
data: currentUser
};
}
再一次运行apidoc文件



不仅可以看0.2.0的版本,还可以与0.1.0的版本对比。

5)给setName()方法增加相关的注释信息

/**
*@api{put}/user Change User
*@apiName PutUser
*@apiGroup User
*@apiVersion 0.1.0
*@apiParam{String}name New name of the user
*@apiError NameEmptyError The name was empty.Minimum of<code>1</code>character is required.
*/

function setName(name) {
if (name.length === 0) {

return {
code: 404,
message: 'NameEmptyError'
};
}
currentUser.name = name;
return {
code: 204
};
}


运行apidoc,打开index页面如下所示。



文章原文:https://speakerdeck.com/rottmann/api-documentation
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息