作为一款优秀的国产项目管理工具软件,禅道提供了开源和商业版本。本文主要介绍基于禅道API接口完成登录认证、创建项目和工单任务的接口集成开发说明。
请自行从公开渠道获取和安装自己的禅道开发测试环境,因为这个工具软件的安装方法很简单,所以这里不做过多说明。
这里主要使用Postman工具来模拟接口方法调用的测试行为,请从以下地址下载和安装postman工具,https://www.getpostman.com/ 。
目录
1、API接口模块与方法
2、几个接口方法的详情说明
(1)创建一个任务的接口方法
(2)查看一个任务的接口方法
(3)用户登录接口
3、通过调用禅道API完成用户登录认证的步骤说明
(1)获取sessionid
(2)使用拿到的sessinid登录
(3)退出登录
(4)查看一个任务
(5)创建一个任务
(6)创建一个项目
(7)数据解析方法
下面直接从禅道API接口开始介绍。
在完成禅道系统的部署后,访问网站的下面的路径即可以打开API方法使用说明的页面,下面以我的测试环境为例。
http://192.168.81.7/zentao/dev-api-task.html
因为大家使用禅道做功能集成的意图肯定是个性化的,下面只是以我使用到的几个模块方法举例。在需要定制开发特定的功能时,可以专门去调阅特定的禅道模块方法的详细说明。
GET/POST /zentao/task-create-[projectID]-[storyID]-[moduleID]-[taskID]-[todoID].json |
||
Create a task. |
||
参数列表 |
类型 |
描述 |
projectID |
int |
|
storyID |
int |
|
moduleID |
int |
|
taskID |
int |
|
todoID |
int |
|
注:projectID为必选项,其它参数为可选。
|
|
|
GET /zentao/task-view-[taskID].json |
||
View a task. |
||
参数列表 |
类型 |
描述 |
taskID |
int |
|
GET/POST /zentao/user-login-[referer]-[from].json |
||
User login, identify him and authorize him. |
||
参数列表 |
类型 |
描述 |
referer |
string |
|
from |
string |
|
大体上,需要依次按照以下顺序处理,获取sessionid,登录认证,执行需要的接口调用,登出。
GET方式
URL:http://192.168.81.7/zentao/api-getsessionid.json
{"status":"success","data":"{\"title\":\"\",\"sessionName\":\"zentaosid\",\"sessionID\":\"mfn6e7p8ptan851aum5l7fcao0\",\"rand\":3167,\"pager\":null}","md5":"a33b09eccf59b5e3e4e4759f0053f5bc"}
http://192.168.81.7/zentao/user-login.json?zentaosid=mfn6e7p8ptan851aum5l7fcao0
需要使用POST提交方式,提供account和password两个数据。
http://192.168.81.7/zentao/user-logout.json
GET方式
http://192.168.81.7/zentao/task-view-[taskID].json
/zentao/task-create-[projectID]-[storyID]-[moduleID]-[taskID]-[todoID].json
POST方式
http://192.168.81.7/zentao/task-create-1-1-3.json?zentaosid=mfn6e7p8ptan851aum5l7fcao0&t=json
projectID取值1,storyID取值为1,modeuleID取值3
当你访问使用zentaoPHP开发的页面时,将访问的url地址中的html换成json,得到的就是json格式的数据。
比如http://192.168.81.7/zentao/task-view-37.html,返回的网页格式,把后面的.html改成.json,返回的是什么?对了,返回的是json格式的数据。
返回的数据是做了两次json_encode,下面是做数据解析的代码示例:
$result = file_get_contents('http://pms.zentao.net/project-task-8.json');
$result = json_decode($($result);
if($result->result == 'success' and md5($result->data) == $result->md5)
{
$data = json_decode($result->data);
print_r($data);
}
先判断第一层里面的result是否正确,md5签名是否正确,然后再对data对象进行json_decode。
参考资料:
禅道官网近期一直打不开,原因未知。在禅道开发团队所属公司网站上能找到下面这样的一点关于禅道API的说明资料,资料有限,也是维护不足。供参考。
http://devel.cnezsoft.com/book/extension/api-intro-43.html