概述
在之前的文章中,我谈到了Jira,如果你是Jira的用户,那么你很有可能也在使用Confluence,因为它们经常是相辅相成的,Jira是一个票据应用程序,而Confluence是一个企业知识管理系统。
从集成的角度来看,连接Confluence和调用它的API看起来和感觉都和Jira一样。
- 你需要一个API令牌
- 你在Zato Dashboard中填写一个表格
- 创建一个Python服务,提供诸如get_page_by_title、attach_file、update_page_property等方法。
让我们从创建API令牌开始,一步一步地完成这一切。
创建一个Atlassian API令牌
为了调用Confluence,你需要使用一个可以与其他Atlassian产品共享的API令牌,比如Jira。如果你还没有,下面是如何创建它的。
- 登录到Confluence或Jira
- 访问可以管理API令牌的地址:https://id.atlassian.com/manage-profile/security/api-tokens
- 点击 "创建API令牌",为令牌提供一个名称,如 "Zato Integrations"。
- 将令牌复制到某个地方,因为一旦创建了令牌,你以后就不能再检索它了。改变令牌的唯一方法是撤销它并创建一个新的。
创建一个Confluence连接
在你的Zato仪表板上,进入云 -> Atlassian -> Confluence。
点击 "创建一个新的连接 "并填写下面的表格。用户名与你登录Confluence或Jira的电子邮件地址相同。
现在,点击 "Change API Token",输入上一节中创建的令牌。
调用Confluence
编写一个调用Confluence的Zato服务的模式,无论你与什么样的API集成,都会感到很熟悉。
- 获得一个与远程资源的连接
- 调用它
- 处理资源返回的响应
在下面的代码中,我们只是记录了Confluence的响应。在一个更大的集成中,我们会对其进行相应的处理,例如,部分输出可以与Jira或其他系统同步。
注意下面的 "client.get_all_pages_from_space "方法--客户端也会提供其他方法,例如get_space、get_page_as_pdf或直接运行CQL(Confluence查询语言)的方法。在你的IDE中使用自动补全功能来发现所有可用的方法。
# -*- coding: utf-8 -*-
# Zato
from zato.common.typing_ import cast_
from zato.server.service import Service
# ###########################################################################
if 0:
from zato.server.connection.confluence_ import ConfluenceClient
# ###########################################################################
class GetAllPages(Service):
def handle(self):
# Name of the Confluence space that our pages are in
space = 'ABC'
# Name of the connection definition to use
conn_name = 'My Confluence Connection'
# .. create a reference to our connection definition ..
confluence = self.cloud.confluence[conn_name]
# .. obtain a client to Confluence ..
with confluence.conn.client() as client: # type: ConfluenceClient
# Cast to enable code completion
client = cast_('ConfluenceClient', client)
# Get all pages from our space
pages = client.get_all_pages_from_space(space)
self.logger.info('Pages received -> %s', pages)
# ###########################################################################
这就是全部--你已经创建了一个Atlassian API令牌,一个Zato Confluence连接,你已经在Python中与Confluence集成了!