6.4. 调用 Fuse Online 公共 API 导出端点


在使用外部工具将 Fuse Online 集成从一个 Fuse Online 环境复制到另一个环境之前,必须完成以下任务:

  • 在 Fuse Online 中,您要导出 CI/CD 管道的集成必须标记为特定环境。请参阅 为 CI/CD 标记集成

    此要求例外情况。当您希望在一个导出操作中导出 Fuse Online 环境的所有集成时,无论集成是否已为特定环境标记无关。

  • 您公开 Fuse Online 公共 API。请参阅 公开外部工具的 Fuse Online 公共 API 端点

用于导出特定环境集成的端点

要导出标记为特定环境的集成,Fuse Online 提供了以下 GET 方法端点:

/public​/integrations​/{env}​/export.zip

{env} 替换为您创建的 CI/CD 环境标签。当集成标记为特定环境时,Fuse Online 会维护一个指示何时标记的时间戳。默认行为是,只有在标签尚未导出时端点才会导出集成。例如,要导出已标记为 test1 环境的集成,端点为:

/public/integrations/test1/export.zip

此端点导出具有 test1 环境标签且满足以下条件之一的集成:

  • 自上次导出的 test1 环境后,集成已被标记为 test1 环境。
  • 该集成已标记为 test1 环境,并且从未导出。

端点在 export.zip 文件中打包集成并返回该文件。

如果没有为指定环境标记的集成,自上次导出集成后,端点会返回 HTTP 204 响应,以指示没有返回任何内容。

用于导出为指定环境标记的所有集成的端点

您可以调用导出端点,以便在使用您指定的环境标签标记的 Fuse Online 环境中导出所有集成。端点导出集成自上次导出集成以来,是否标记为指定环境。这样便可轻松复制在另一个 Fuse 在线环境中具有特定标签的所有集成。要做到这一点:

  • 您必须已创建了 environment 标签。请参阅 为 CI/CD 标记集成
  • ignoreTimestamp=true 选项添加到导出端点的调用中。

例如:

/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip

用于导出所有集成的端点

您可以调用导出端点,以便在一个 Fuse Online 环境中导出所有集成。这样便可在另一个 Fuse 在线环境中轻松复制所有集成。要做到这一点:

  • 您必须已创建了 environment 标签。请参阅 为 CI/CD 标记集成
  • all=true 选项添加到导出端点的调用中。

例如:

/public/integrations/{env}/export.zip?all=true

{env} 替换为 CI/CD 环境标签。端点将指定的 environment 标签分配给尚未为该环境标记的每个集成。

添加 all=true 选项时,还必须明确指定导出的集成被打包在 export.zip 文件中。例如:

/public/integrations/test1/export.zip?all=true -o export.zip

此调用端点:

  • 标记 test1 环境的每个集成。
  • 返回 export.zip 文件中的所有集成。

    如果没有指定 the -o export.zip 选项,则端点会返回名为 export.zip?all=true 的文件。

导出端点所需的自定义标头

调用导出端点的命令必须完全指定这些自定义标头,如下所示:

  • -H "Content-Type: multipart/form-data"
  • -H "SYNDESIS-XSRF-TOKEN: awesome"

    Fuse Online 公共 API 需要此标头来验证请求。

  • -h 'Authorization: Bearer <token>'

    在创建用于公开 Fuse Online 公共 API 的 OpenShift 服务帐户时,将 <token> 替换为复制到文件中的 secret 令牌。

导出集成的 curl 命令示例

以下是调用导出集成的 Fuse Online API 端点的 curl 命令示例:

curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/dev1/export.zip

在命令中:

  • 命令末尾的 URL 标识 Fuse Online 环境,以便从中导出集成。
  • dev1 环境标签的规格表示您要导出已标记为 dev1 环境的集成,并且自标记后尚未导出。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.