【问题标题】:Jira REST Client Library for Cloud适用于云的 Jira REST 客户端库
【发布时间】:2020-06-19 05:25:52
【问题描述】:

Jira Rest Java Client 的概述中,Atlassian 指定:

Jira REST Java 客户端适用于 Jira 服务器,但不适用于 Jira 云。

是否有适用于 Jira cloud 的 REST API 的客户端库?


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

以下问题似乎隐含地询问了与我相同的问题,但明确关注 POM 的存在:How to use JIRA REST client library?。所以那里的答案集中在关于使用在 Maven 上找到的 POM 的建议。

【问题讨论】:

  • 我们开始使用该库,根据上面的评论,该库不适用于 Jira Cloud。它有效。所以我猜这只是 Atlassian 掩饰自己,实际上代码可能有效,至少在大多数情况下是这样。

标签: cloud jira-rest-api


【解决方案1】:

客户端库

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

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/

【讨论】:

    【解决方案2】:

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

    然后您可以使用例如生成您自己的客户端。 Swagger CodegenOpenAPI Generator 转换为您选择的首选语言。我很快就使用 OpenAPI Generator 自己尝试了它,但由于 Swagger 定义中的错误而失败 - 如果您有兴趣,可以尝试自己修复它或在Atlassian Developer Community 中报告它。

    关于 Jira Rest Java 客户端

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

    【讨论】:

    • 谢谢你。黑森一个彻底的答案。我不知道从 REST API 自动生成客户端库的能力,尽管它确实很有意义,总的来说,现在我想到了这种自动化。至于服务器库,我认为对于我们的用例来说就足够了。由于 JRJC 是开源的,我们的计划是将它用作 JAR 直到出现问题,如果发生这种情况,然后下载源代码并对其进行调整,以便在我们需要的任何地方与云一起工作。感谢您的提醒
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多