适用于云的 Jira REST 客户端库

Col*_*dal 5 cloud jira-rest-api

在Jira Rest Java 客户端概述中,Atlassian 指定:

Jira REST Java 客户端可与 Jira Server 配合使用,但不能与 Jira Cloud 配合使用。

Jira Cloud是否有 REST API 的客户端库?


我在互联网上找不到任何专门针对使用 Jira cloud REST API 的开源库。

下面的问题似乎隐含地问了与我相同的问题,但明确关注 POM 的存在:如何使用 JIRA REST 客户端库?。所以这里的答案重点是关于使用 Maven 上的 POM 的建议。

s.h*_*sse 5

我不知道 Jira Cloud 的开源客户端库(用 Java 编写),而且快速的互联网搜索也没有提供任何好的结果。但是您可以生成自己的客户端,因为 Atlassian 为其云 REST API 提供了 Swagger/OpenAPI 定义:

如何下载 Jira Cloud 的 REST API 的 OpenAPI/Swagger 定义

然后,您可以使用Swagger CodegenOpenAPI Generator 等将您自己的客户端生成为您选择的首选语言。我很快自己使用 OpenAPI Generator 进行了尝试,但由于 Swagger 定义中的错误而失败了 - 如果您有兴趣,可以尝试自行修复它或在 Atlassian开发者社区中报告它。

关于 Jira Rest Java 客户端

您可能可以将客户端用于大多数 Jira Cloud REST API 端点,因为它们与 Jira Server 类似。但是,请记住,Jira Cloud REST API 和 Jira Server REST API 之间存在一些较小的差异。例如,有些端点仅存在于 Jira Cloud 中,例如Jira Expressions。或者已弃用且很快将被删除的端点,因为它们现在需要分页请求参数,例如项目过滤。此外,客户端不支持JWT 身份验证或 OAuth,而仅支持基本身份验证- 但这在您的情况下可能不是必需的,具体取决于您的用例。


Col*_*dal 3

客户端库

一位助理开发人员最终构建了这个库:

https://gitlab.com/hectorjsmith/jira-api-client

该网站上有一个自述文件,介绍如何使用它。它建立在原始库的基础上 - 见下文。

使用 OpenAPI 的原始库

感谢 s。hesse 为我指明了正确的方向,我得到了一个使用 Open API 工具生成的 Kotlin 库。Open API 生成器有点 bug,首先抱怨 Jira 提供的 JSON,然后创建带有小 bug 的 Kotlin。但经过一些调整,Kotlin 编译为 JAR。我还没有测试过,但这里是任何感兴趣的人的存储库: https: //github.com/ColmBhandal/KotlinJiraCloudClient

笔记

由 Open API Generator 自动生成的库非常丑陋。这是由并非专门针对 Kotlin 定制的工具自动生成的代码所期望的。然而,美化它并没有多大意义,因为 API 可能会发生变化,因此可能需要重新生成它。相反,建议在这个丑陋的库和客户端代码之间生成另一​​层代码。该代码将是自动生成的原始公开代码之上的一种装饰/外观,对其进行包装以提供类型安全性和更好的易用性。

Python 替代方案

看起来还有一个用于连接到 Jira 的 Python 库,尽管我们不想在本例中使用 Python: https: //pypi.org/project/jira-cloud-python/