禅道API机制介绍

转载于:http://www.zentao.net/article-view-79023.html

    禅道项目管理通过底层的框架实现了灵活的API调用机制。通过禅道的API机制,大家就可以实现很多非常有意思的功能。下面我们以一个实际的例子来向大家展示禅道的API机制。

一、API机制介绍:

1.1 禅道提供的API机制都可以通过http协议获得,返回的数据格式都是json格式的。

1.2 禅道通过框架共实现了两种API机制。一种为直接的页面调用,一种通过超级model调用接口,直接调用model层的方法。

1.2.1 页面的调用

    当你访问禅道的时候,将访问的url地址中的html换成json,看到的就是json格式的数据。
    比如http://pms.zentao.cn/project-task-8.html,返回的网页格式,把后面的.html改成.json,返回的是什么?对了,返回的是json格式的数据。
    如果是GET 方式,那么只需要将t参数改成json,http://pms.zentao.cn/?m=project&f=task&t=json.

1.2.2 超级model调用接口

    页面的调用,存在一定的局限,比如返回的数据可能没有你想要的,或者返回了你不需要的数据。为此,我们特地准备了一个超级model调用接口。该接口的使用方式:
    首先要为相应的帐号增加超级model调用接口的访问权限。
    然后就可以通过api模块的getModel方法,获取任意模块的model的公开方法了。
    getModel方法需要三个参数,分别是模块名,方法名,然后是该方法的参数列表,key1=value1,key2=value2这种方式,多个参数之间用英文逗号隔开。
    以调用bug模块的getUserBugPairs()方法为例:
GET方式调用: ?m=api&f=getModel&module=bug&methodName=getUserBugPairs&params=account=$account
PATH_INFO方式:api-getmodel-bug-getUserBugPairs-account=$account.json

1.3 API调用步骤:

    禅道的API调用共分为三个步骤:

1.3.1 获得session。

    首先要访问api模块的getSessionID方法,获得session。
GET方式:?m=api&f=getSessionID&t=json
PATHINFO: api-getsessionid.json
    返回的格式中包含sessionName和sessionID。在后续的访问中,必须以cookie的方式,或者GET方式,将session传递给服务器。

1.3.2 验证用户身份。

    然后可以访问user模块的login方法,来进行用户身份的验证。
    用户身份验证,需要提供用户名和密码,以post方式传递给user-login方法。
    变量名为: account, password。

1.3.3 调用相应的API。
    用户验证通过之后,就可以通过页面调用的api,或者超级model调用的api来获取相应的数据了。

二、实际例子:

    请参考,http://zentaoms.googlecode.com/svn/trunk/bin/getbugs.php

    执行时,需要修改里面的相应参数。



禅道API机制介绍_第1张图片

你可能感兴趣的:(json,PHP,框架,SVN,F#)