# レシピライフサイクル管理
以下のエンドポイントは、Workato埋め込みパートナーのみ利用できます。これらのエンドポイントを使用すると、エクスポートマニフェストをプログラムで作成および管理できます。また、1つのAPI認証情報セットを使用して、パッケージを顧客アカウントにインポートおよびエクスポートすることも可能です。
独自の環境(顧客アカウントではない)にパッケージをインポート/エクスポートする場合は、開発者APIにリストされているエンドポイントを使用してください。
GLOSSARY
マニフェスト: レシピ、ルックアップテーブル、接続など、さまざまなアセットを含むコンテナ。
パッケージ: マニフェストのビルド。マニフェスト内の各アセットのソースコードを含みます。パッケージ作成時に利用可能なアセットの最新バージョンが含まれています。
# クイックリファレンス
タイプ | リソース | 説明 |
---|---|---|
POST | api/export_manifests | エクスポートマニフェストを作成します。 |
PUT | api/export_manifests/:id | エクスポートマニフェストを更新します。 |
GET | api/export_manifests/:id | エクスポートマニフェストを表示します。 |
POST | api/managed_users/:id/imports | パッケージを顧客アカウントのフォルダにインポートします。 |
GET | api/managed_users/:id/imports/:package_id | インポートされたパッケージのステータスを取得します。 |
POST | api/managed_users/:managed_user_id/exports/:manifest_id | マニフェストIDに基づいてパッケージをエクスポートします。 oem_vendor 特権が必要です。 |
GET | api//managed_users/:managed_user_id/exports/:package_id | パッケージエクスポートのステータスを返します。 oem_vendor 特権が必要です。 |
# エクスポートマニフェストの作成
エクスポートマニフェストを作成します。
POST /api/export_manifests
# ペイロード
名前 | タイプ | 説明 |
---|---|---|
name | string 必須 | 新しいマニフェストの名前。 |
assets | object 必須 | 依存するアセット。 |
id | integer 必須 | 依存関係のID。 |
type | string 必須 | 依存するアセットのタイプ。 |
checked | boolean オプション | アセットがマニフェストに含まれるかどうかを決定します。デフォルトは true です。 |
version | integer オプション | アセットのバージョン。デフォルトは最新バージョンです。 |
folder | string オプション | アセットを含むフォルダ。デフォルトは "" です。 |
absolute_path | string オプション | アセットの絶対パス。デフォルトはルートフォルダです。 |
root_folder | boolean オプション | ルートフォルダの名前。デフォルトは false です。 |
unreachable | boolean オプション | アセットが到達不能かどうか。デフォルトは false です。 |
zip_name | string オプション | エクスポートされたzipファイルの名前。デフォルトでは、Workatoはこの構造で名前を自動生成します:asset_#{index}.#{type}.json 。 |
folder_id | integer オプション | アセットを含むフォルダのID。デフォルトはルートフォルダです。 |
# サンプルリクエスト
curl -X POST 'https://www.workato.com/api/export_manifests' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"export_manifest": {
"name": "テストマニフェスト",
"assets": [
{
"id": 12,
"name": "レシピopsのコピー",
"type": "recipe",
"version": 1,
"folder": "",
"absolute_path": "すべてのプロジェクト",
"root_folder": false,
"unreachable": false,
"zip_name": "copy_of_recipeops.recipe.json",
"checked": true
}
],
"folder_id": 112
}
}
'
# レスポンス
{
"result": {
"id": 12,
"name": "テストマニフェスト",
"last_exported_at": null,
"created_at": "2023-02-27T02:44:59.447-08:00",
"updated_at": "2023-02-27T02:44:59.447-08:00",
"deleted_at": null,
"project_path": "フォルダ1",
"status": "working"
}
}
# 可能なステータス
ステータス | 定義 |
---|---|
working | アクティブです。 |
archived | 削除されました。 |
# エクスポートマニフェストを更新
PUT /api/export_manifests/:id
# URLパラメータ
名前 | タイプ | 説明 |
---|---|---|
id | 整数 文字列 | 依存関係のIDです。 |
# ペイロード
assets[]
に含まれるプロパティを更新して、以前に定義されたアセットを置き換えます。
名前 | タイプ | 説明 |
---|---|---|
name | 文字列 オプション | マニフェストの名前です。この値を更新してマニフェストの名前を変更します。デフォルトは以前の名前です。 |
assets | オブジェクト 必須 | 依存するアセットです。 |
id | 整数 必須 | 依存関係のIDです。 |
type | 文字列 必須 | 依存するアセットのタイプです。 |
checked | 真偽値 オプション | アセットがマニフェストに含まれるかどうかを決定します。デフォルトはtrue です。 |
version | 整数 オプション | アセットのバージョンです。デフォルトは最新バージョンです。 |
folder | 文字列 オプション | アセットを含むフォルダです。デフォルトは"" です。 |
absolute_path | 文字列 オプション | アセットの絶対パスです。デフォルトはルートフォルダです。 |
root_folder | 真偽値 オプション | ルートフォルダの名前です。デフォルトはfalse です。 |
unreachable | 真偽値 オプション | アセットが到達不能かどうかを示します。デフォルトはfalse です。 |
zip_name | 文字列 オプション | エクスポートされたzipファイル内の名前です。デフォルトでは、Workatoはこの構造で名前を自動生成します:asset_#{index}.#{type}.json 。 |
folder_id | 整数 オプション | アセットを含むフォルダのIDです。デフォルトはルートフォルダです。 |
# サンプルリクエスト
curl -X PUT 'https://www.workato.com/api/export_manifests/12' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"export_manifest": {
"name": "テストマニフェスト",
"assets": [
{
"id": 12,
"name": "レシピのコピー",
"type": "recipe",
"version": 1,
"folder": "",
"absolute_path": "すべてのプロジェクト",
"root_folder": false,
"unreachable": false,
"zip_name": "copy_of_recipeops.recipe.json",
"checked": true
}
],
"folder_id": 112
}
}
'
# レスポンス
{
"result": {
"id": 12,
"name": "テストマニフェスト",
"last_exported_at": null,
"created_at": "2023-02-27T02:44:59.447-08:00",
"updated_at": "2023-02-27T02:44:59.447-08:00",
"deleted_at": null,
"project_path": "フォルダー1",
"status": "working"
}
}
# エクスポートマニフェストの表示
エクスポートマニフェストを表示します。
GET /api/export_manifests/:id
# URLパラメータ
名前 | タイプ | 説明 |
---|---|---|
id | integer string | 依存関係のIDです。 |
# サンプルリクエスト
curl -X GET 'https://www.workato.com/api/export_manifests/12' \
-H 'Authorization: Bearer <api_token>'
# レスポンス
{
"result": {
"id": 12,
"name": "テストマニフェスト",
"last_exported_at": null,
"created_at": "2023-02-27T02:44:59.447-08:00",
"updated_at": "2023-02-27T02:44:59.447-08:00",
"deleted_at": null,
"project_path": "フォルダー1",
"status": "working"
}
}
# パッケージを顧客アカウントにインポートする
指定されたフォルダーにパッケージを顧客アカウントにインポートします。
WARNING
このエンドポイントへの特権を持つAPIクライアントを提供することは、パッケージのインポートを通じてレシピ、ルックアップテーブル、パブサブトピック、メッセージテンプレートなどの他のアセットの作成/更新の能力を間接的に提供します。
POST /api/managed_users/:id/imports
これは非同期リクエストです。インポートされたパッケージの詳細を取得するには、パッケージのステータスを取得するエンドポイントを使用してください。
入力(zipファイル)は、パッケージのコンテンツを含むapplication/octet-stream
ペイロードです。URLパラメータrestart_recipesは、インポート時に実行中のレシピを再起動する場合にtrue
に設定する必要があります。
# URLパラメータ
名前 | タイプ | 説明 |
---|---|---|
managed_user_id | string required | Workato組み込み顧客アカウントのID/外部ID。 外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。 |
folder_id | string required | フォルダーIDです。 |
restart_recipes | boolean optional | 実行中のレシピを再起動するためには、値をtrue に設定する必要があります。実行中のレシピがある場合、このパラメータが false または指定されていない場合、パッケージをインポートすることはできません。 |
# サンプルリクエスト
curl -X POST 'https://www.workato.com/api/managed_users/91928/imports?folder_id=1827' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/octet-stream' \
-F 'path/to/local/file.zip'
# レスポンス
{
"id":251,
"operation_type":"import",
"status":"completed"
}
# パッケージのインポートステータスを取得する
顧客アカウントにインポートされたパッケージの詳細を取得します。
GET /api/managed_users/:id/imports/:package_id
# URLパラメーター
名前 | タイプ | 説明 |
---|---|---|
managed_user_id | string 必須 | Workato Embeddedの顧客アカウントID/外部ID。 外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。 |
package_id | string 必須 | パッケージID。 |
# サンプルリクエスト
curl -X GET 'https://www.workato.com/api/managed_users/91829/imports/198' \
-H 'Authorization: Bearer <api_token>'
# レスポンス
# インポート成功
インポートが正常に完了した場合、以下のレスポンスが返されます。
インポート結果
完了したインポートについては、各レシピのimport_result
も確認することが重要です。可能なimport_resultの値について詳しくはこちらをご覧ください。
{
"id":242,
"operation_type":"export",
"status":"completed",
"recipe_status":[
{
"id": 12345,
"import_result": "no_update_or_update_without_restart"
},
{
"id": 12346,
"import_result": "restarted"
},
{
"id": 12347,
"import_result": "stopped"
}
]
}
# インポート失敗
インポートが失敗した場合、以下のレスポンスが返されます。
インポート結果
失敗したインポートの場合、recipe_status
にすべてのレシピが返されない場合があります。これは、インポートが失敗する前に更新されていない可能性があるためです。可能なimport_resultの値について詳しくはこちらをご覧ください。
{
"id":198,
"operation_type":"export",
"status":"failed",
"error":"error_message",
"recipe_status":[
{
"id": 12345,
"import_result": "no_update_or_update_without_restart"
},
{
"id": 12346,
"import_result": "restarted"
},
{
"id": 12347,
"import_result": "stopped"
}
]
}
# レシピのimport_resultの値
合計6つの可能な結果があります:
no_update_or_update_without_restart
- レシピに再起動が必要ないことを示します。レシピを更新せずに更新できるか、更新が行われなかった場合です。 インポート成功not_found
- レシピが見つからないと予期しないエラーが発生した場合です。頻繁には表示されません。 レシピの更新なしでインポートが失敗しました。stop_failed
- 再起動が必要なレシピに対して、レシピを停止しようと試みます。この状態は、レシピを停止できなかったことを示します。 レシピの更新なしでインポートが失敗しました。stopped
- Workatoはレシピを停止しましたが、レシピにエラーがあるため再起動されませんでした。 レシピの更新はされましたが、再起動はされませんでした。restart_failed
- Workatoはレシピを再起動しようとしましたが、失敗しました。 レシピの更新はされましたが、再起動はされませんでした。restarted
- Workatoはレシピを更新後に正常に再起動しました。 インポート成功
# パッケージのエクスポート
マニフェストIDを使用してパッケージをエクスポートします。このアクションにはoem_vendor
の特権が必要です。
エクスポートされたパッケージの詳細については、エクスポートステータスの取得エンドポイントを使用して取得します。
WARNING
このエンドポイントへの特権を持つAPIクライアントには、結果のzipファイルを調べることで、レシピ、ルックアップテーブル、パブサブトピック、メッセージテンプレートなどの他のアセットを作成/更新する能力が間接的に与えられます。
POST /api/managed_users/:managed_user_id/exports/:manifest_id
# URLパラメーター
名前 | タイプ | 説明 |
---|---|---|
managed_user_id | string 必須 | 埋め込みユーザーアカウントIDまたは外部ID。外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。 |
manifest_id | string 必須 | エクスポートするマニフェストのID。 |
# サンプルリクエスト
curl -X POST 'https://www.workato.com/api/managed_users/91829/exports/508' \
-H 'Authorization: Bearer <api_token>'
# レスポンス
{
"id":365,
"operation_type":"export",
"status":"in_progress",
"export_manifest_id":508,
"download_url":"nil"
}
# エクスポートのステータスを取得する
エクスポートされたパッケージのステータスを取得します。oem_vendor
の特権が必要です。
GET /api/managed_users/:managed_user_id/exports/:package_id
# URLパラメータ
名前 | タイプ | 説明 |
---|---|---|
managed_user_id | string 必須 | 埋め込まれたユーザーアカウントIDまたは外部ID。外部IDはEで始まる必要があります。例えば、EA2300 となり、結果のIDはURLエンコードされる必要があります。 |
package_id | string 必須 | パッケージのID。 |
# サンプルリクエスト
curl -X GET 'https://www.workato.com/api/managed_users/91829/exports/370' \
-H 'Authorization: Bearer <api_token>'
# レスポンス
{
"id":370,
"operation_type":"export",
"status":"completed",
"export_manifest_id":513,
"download_url":"<https://www.example.com>"
}
Last updated: 2024/2/13 16:59:53