# レシピライフサイクル管理

以下のエンドポイントは、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