最近有用到开源版的禅道系统,版本10.0,为了更方便地获取禅道信息,我参照官方的说明写了禅道api调用的脚本。由于网上能搜到的博客基本没有,我就把自己的成果分享一下。在此申明,此文章内容是我自己原创,并不涉及公司机密,同时请各位请尊重我的劳动成果。

废话不多说,直接上代码再解释吧。

import requests

import json

class Zentao_cli(object):

session = None #用于实现单例类,避免多次申请sessionID

sid = None

def __init__(self, url, account, password, override = False):

self.url = url

self.account = account #账号

self.password = password #密码

self.session_override = override #是否覆盖原会话

self.pages = {

"sid": "/index.php?m=api&f=getSessionID&t=json", #获取sid的接口

"login": "/index.php?t=json&m=user&f=login&account={0}&password={1}&sid={2}", #登录的接口

"get_story_list_by_projectID": "/index.php?t=json&m=story&f=ajaxGetProjectStories&projectID={0}",

"get_story_list_by_account": "/index.php?"

}

self.s = None

self.sid = None

def req(self,url):

#请求并返回结果

web = self.s.get(url)

if web.status_code == 200:

resp = json.loads(web.content)

if resp.get("status") == "success":

return True, resp

else:

return False, resp

def login(self):

if self.s is None:

if not self.session_override and Zentao_cli.session is not None:

self.s = Zentao_cli.session

self.sid = Zentao_cli.sid

else:

#新建会话

self.s = requests.session()

res, resp = self.req(self.url.rstrip("/") + self.pages["sid"])

if res:

print("获取sessionID成功")

self.sid = json.loads(resp["data"])["sessionID"]

Zentao_cli.sid = self.sid

login_res, login_resp = self.req(self.url.rstrip("/") + self.pages["login"].format(self.account, self.password, self.sid))

if login_res:

print("登录成功")

Zentao_cli.session = self.s

def get_story_list_by_projectID(self, projectID):

#根据projectID获取需求列表

req_url = self.url.rstrip("/") + self.pages["get_story_list_by_projectID"].format(str(projectID))

web = self.s.get(req_url)

if web.status_code == 200:

resp = json.loads(web.content.decode())

for k,v in resp.items():

print(k,v)

if __name__ == "__main__":

cli = Zentao_cli("http://192.168.xx.xx/zentao", "xxxxxx", "xxxxxx123")

cli.login()

cli.get_story_list_by_projectID(17)

并没有依赖太多的库,只用了常用的requests和json模块,api调用的接口是从源码中找到的。类初始化的时候只需要传入禅道地址,帐号名,密码,然后调用获取的方法就行了。如果要做更多的操作,比如获取bug列表,提交bug,提交需求,就需要与源码中的函数一一对应写函数传参数进行交互。

如果本文章对您有用别忘了点个赞,加收藏。如果想要更多的函数实现,请在评论区艾特我,或者私信我,另外欢迎找我交流。

调用接口登录禅道_干货,调用api获取禅道需求列表等相关推荐

  1. 调用接口登录禅道_请教调用API新增禅道用户

    原帖由 石洋洋 于 2019-12-12 09:25:59 发表 调用例子: PATH_INFO方式 1.访问 http://x.com/api-getsessionid.json获取禅道sessio ...

  2. java调用接口失败重调_接口调用失败的退避策略

    退避策略简介 在开发过程中我们经常会遇到调用接口失败的情况.遇到这种情况,我们有时候需要重试机制,常用的重试(退避)策略有: 固定的时间间隔重试一次,最多重试N次:比如我现在一个接口调用失败了,不是立 ...

  3. cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例

    1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出 ...

  4. 调用接口登录禅道_调用禅道api创建新用户

    调用禅道api创建新用户 使用禅道API是一件非常麻烦的事,因为它没有详细的API文档. 官方在网站内嵌的API文档极其简略,根本不知道需要传递什么参数. 如何知道该如何使用它提供的API呢? 你必须 ...

  5. 调用接口登录禅道_第三方应用配置免密登录禅道

    禅道11.5.1版本开始,增加第三方应用免密登录禅道的功能. 下面,我们来介绍一下免密登录的具体配置. 一.添加应用,开启免密登录 登录禅道,到后台--二次开发--应用,添加应用时开启免密登录. 只有 ...

  6. 调用接口登录禅道_有java调用api登录并验证禅道的实例吗

    展开全部 本文实例为大家分享了32313133353236313431303231363533e78988e69d8331333363396466JAVA的短信验证码api调用代码,供大家参考,具体内 ...

  7. 很多人调用接口会阻塞吗_锻炼的真相你知道吗?这些你可能都想了解,很多人都会问的2点...

    你喜欢运动吗?你了解过运动吗? 每天从食物上所摄取的能量需要运动多久才能消耗完呢? 每天坚持锻炼为什么体重一直不降呢? 每天坚持锻炼的人一定很健康吗? ...... 对于以上问题,相信一样也是你想了解 ...

  8. 很多人调用接口会阻塞吗_经常提前还花呗会提高额度?很多人都想错了,你也是这样吗?...

    如今因为有支付宝的存在,极大的满足了我们对消费的需求,资金周转不过来的时候可以敞开了用,解决了大家不少的燃眉之急,但它是一个让人又爱又恨的东西,因为它可以在资金匮乏的时候解决没钱的苦恼,恨的是因为过度 ...

  9. java禅道_使用Java+Excel统计禅道上问题处理情况

    背景:部署在服务器上的禅道,查看测试报告模块不正常,无法看细节.因需要,需每日记录禅道问题处理情况,特做此脚本,每日下班前运行. 下图为每日BUG记录,每周.每月.一个版本周期的bug处理情况同样做法 ...

  10. python主程序调用子程序的指令是_要调用子程序,必须在主程序中用M98指令编程,而在子程序结束时用M99返回主程序_学小易找答案...

    [判断题]刀具补偿过程包括刀补的建立.刀补的执行和刀补的取消三个阶段. [判断题]数控机床只适用于加工零件的批量小.形状复杂.经常改型且精度高的场所 [单选题]甲公司2017年年初未分配利润为80万元 ...

最新文章

  1. 第二百七十五节,MySQL数据库安装和介绍
  2. javascript写字技巧_【iGeek手册】如何书写更加简洁的javascript代码?
  3. mfc如何删除lineto画的_见到过的最完整的CAD实例教程:如何画切割刀片
  4. python filter map区别_python中filter、map、reduce的区别
  5. 【Lucene】Apache Lucene全文检索引擎架构之中文分词和高亮显示4
  6. pytorch中lr_scheduler的使用
  7. 交叉编译工具arm-linux-gccarm-elf-gcc下载地址全集
  8. 【SQL】字符串去空格解决方法
  9. 红外测距模块 51单片机_红外通信原理
  10. 项目管理学习流程图-ITTO-PMP
  11. PC机并口、并口扩展卡使用EPP模式通信,ECP SPP等
  12. 【AAAI 2021】全部接受论文列表(一)
  13. 【书影观后感 一】大秦帝国的罗曼蒂克消亡史
  14. pdf文件太大怎么压缩?四个步骤完成
  15. 不会吧不会吧,不会真有人还不会算时间复杂度吧?用十分钟让你明白如何计算时间复杂度
  16. PS进阶篇——如何PS软件给衣服换个颜色或图案风格(七)
  17. 实用项目管理-干系人管理
  18. 天生励志难自弃—记新东方胡平老师的美丽人生
  19. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽
  20. < Linux >:shell命令初步认识,Linux权限

热门文章

  1. 64 位SQL Server 2005通过DB link链接32位SQL Server 2000 的bug解决
  2. adobe Director的一些快捷键(direct_Shortcut)
  3. SQL 与 Hibernate 性能相差悬殊
  4. 2.5.1 命令与参数
  5. GeoQuiz初体验
  6. 如何能够做好主动沟通
  7. dotnetbar 5.8.0.3
  8. python源码中的学习笔记_第9章_类与对象
  9. 2018春招-赛码网-例题-水仙花数
  10. 【多任务】如何利用多任务学习提升模型性能?