api机制简介

2014-09-01 18:20:22
王春生
58810
最后编辑:石洋洋 于 2019-01-15 13:33:21
分享链接
摘要:zentaoPHP还提供了API机制,方便大家来和其他的系统进行集成。

一、API机制介绍:

前面章节讲述的扩展机制是需要直接开发PHP或者html, css, js等代码。zentaoPHP还提供了API机制,方便大家来和其他的系统进行集成。

API机制都是基于http协议的。返回的数据以json格式存储。

zentaoPHP架共实现了两种API机制。一种为直接的页面调用,一种通过超级model调用接口,直接调用model层的方法,下面我们一一来看下。

二、页面直接调用

当你访问使用zentaoPHP开发的页面时,将访问的url地址中的html换成json,得到的就是json格式的数据。

比如http://pms.zentao.net/project-task-8.html,返回的网页格式,把后面的.html改成.json,返回的是什么?对了,返回的是json格式的数据。

如果是GET 方式,那么只需要将t参数改成json,http://pms.zentao.net/?m=project&f=task&t=json。


返回的数据是做了两次json_encode,下面是代码的示例:

$result = file_get_contents('http://pms.zentao.net/project-task-8.json'); 
$result = json_decode($result);
if($result->status == 'success' and md5($result->data) == $result->md5)
{
    $data = json_decode($result->data);
    print_r($data);
}

先判断第一层里面的result是否正确,md5签名是否正确,然后再对data对象进行json_decode。

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

备注:

超级model调用方法暂时只有禅道项目管理软件实现。蝉知门户和然之协同暂时还没有实现。

评论列表
李先生 2021-10-12 15:25:50
您好,我新开发的Model不需要登录就能访问,这块在哪里设置了呀?
王春生 2021-10-18 10:45:32
common模块里面设置open method。
受不了先生 2021-09-16 15:26:12
为什么有的的获取是self.host + '/zentao/api-getsessionid.json'格式,有的是http://bug.soulapp-inc.cn/index.php?m=api&f=getSessionID&t=json,为什么这么多样式?第一种我根本调不通啊?
王春生 2021-09-20 08:35:23
看你调用的入口地址是什么。
dongyanfei 2021-07-08 11:14:27
你好,为什么没有禅道用例相关接口呢?我现在有个需求需要调用禅道获取用例列表接口,请问 这个接口从哪可以拿到呢?望回复,谢谢
2021-06-01 15:11:30
请问可以提供java调用的demo么。
cruise 2021-02-27 12:55:19
您好,我在使用java调用禅道的接口,遇到如下问题:
使用 超级model调用接口 调用的话不需要登录吗?
另外,通过接口登录之后如何退出当前的登录用户呢?
谢谢!
王春生 2021-03-01 08:45:52
需要登陆的。可以在后台接口里面添加一个应用,访问的时候可以使用秘钥验证的方式。具体的参考我们的文档。
伟浩 2021-03-03 10:23:40
请问哪里能找到“秘钥验证”的文档??
王春生 2021-03-04 07:44:18
到我们官网联系下我们的客服QQ,加我们二次开发群讨论吧。
dq 2021-02-01 13:56:47
请问查看版本详情接口/zentao/build-view-2400.json 返回data为false是怎么回事呢,还需要传其它参数吗。{"status":"success","data":false,"md5":"d41d8cd98f00b204e9800998ecf8427e"}
王春生 2021-02-01 14:30:07
浏览器里面登陆禅道之后,然后访问这个地址,看看返回是什么?
dq 2021-02-01 14:40:43
我就是这样访问的。登录之后查看版本详情,地址是/zentao/build-view-2400.html,然我我把html改成json直接回车,就返回了这样的结果
王春生 2021-02-03 10:28:02
如果html格式正常的话,这个要跟一下代码了。
hUI雪峰 2020-12-21 19:03:30
请问外部调用接口应该怎么写 我添加sessionName+'='+sessionID以后也请求不到
王春生 2020-12-23 08:51:24
sessionname要替换成具体的cookie变量的名字,sessionid换成实际的cookie的值。这个根据getconfig接口返回的值定。
zl 2020-11-24 14:18:29
好的,谢谢
zl 2020-11-23 09:29:55
用户列表已经取出来了,但是批量提娜佳保存的时候,像单挑添加那样把抄送人传回去没用,请问批量添加任务接口后台有接收抄送人这个字段吗?
王春生 2020-11-24 08:13:36
没有。可以一个个创建。
zl 2020-11-24 14:19:13
好的,谢谢
zl 2020-11-19 16:28:14
请问批量添加任务接口,抄送人那个字段该怎么传参呢?
王春生 2020-11-23 08:44:47
用户名列表。
1/6
发表评论
评论通过审核后显示。