6.4. 调用 Fuse Online 公共 API 导出端点
在使用外部工具将 Fuse 在线集成从一个 Fuse Online 环境复制到另一个 Fuse 之前,必须完成以下任务:
在 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
环境,它从未导出。
端点打包 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 Online 环境中的所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成。
-
将
all=true
选项添加到导出端点的调用中。
例如:
/public/integrations/{env}/export.zip?all=true
将 {env}
替换为 CI/CD 环境标签。端点将指定的环境标签分配给尚未为该环境标记的每个集成。
添加 all=true
选项时,还必须明确指定希望将导出的集成打包在 export.zip
文件中。例如:
/public/integrations/test1/export.zip?all=true -o export.zip
此端点调用:
-
标记
test1
环境的每个集成。 返回
export.zip
文件中的所有集成。如果没有指定
-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 在线环境。
-
dev1
环境标签的规格表示您要导出为dev1
环境标记的集成,并且自标记以来尚未导出。