禪道API機制介紹
禪道項目管理通過底層的框架實現了靈活的API調用機制。通過禪道的API機制,大家就可以實現很多非常有意思的功能。下面我們以一個實際的例子來向大家展示禪道的API機制。
更多開源詳情:http://www.zentao.net
一、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¶ms=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來獲取相應的數據了。