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

以下のエンドポイントは、Workato埋め込みパートナーのみ利用できます。これらのエンドポイントを使用すると、エクスポートマニフェストをプログラムで作成および管理できます。また、1つのAPI認証情報セットを使用して、パッケージを顧客アカウントにインポートおよびエクスポートすることも可能です。

独自の環境(顧客アカウントではない)にパッケージをインポート/エクスポートする場合は、開発者APIにリストされているエンドポイントを使用してください。

GLOSSARY

  • マニフェスト: レシピ、ルックアップテーブル、接続など、さまざまなアセットを含むコンテナ。

  • パッケージ: マニフェストのビルド。マニフェスト内の各アセットのソースコードを含みます。パッケージ作成時に利用可能なアセットの最新バージョンが含まれています。


クイックリファレンス

タイプリソース説明
POSTapi/export_manifestsエクスポートマニフェストを作成します。
PUTapi/export_manifests/:idエクスポートマニフェストを更新します。
GETapi/export_manifests/:idエクスポートマニフェストを表示します。
POSTapi/managed_users/:id/importsパッケージを顧客アカウントのフォルダにインポートします。
GETapi/managed_users/:id/imports/:package_idインポートされたパッケージのステータスを取得します。
POSTapi/managed_users/:managed_user_id/exports/:manifest_idマニフェストIDに基づいてパッケージをエクスポートします。 oem_vendor特権が必要です。
GETapi//managed_users/:managed_user_id/exports/:package_idパッケージエクスポートのステータスを返します。 oem_vendor特権が必要です。

エクスポートマニフェストの作成

エクスポートマニフェストを作成します。

POST /api/export_manifests

ペイロード

名前タイプ説明
namestring
必須
新しいマニフェストの名前。
assetsobject
必須
依存するアセット。
idinteger
必須
依存関係のID。
typestring
必須
依存するアセットのタイプ。
checkedboolean
オプション
アセットがマニフェストに含まれるかどうかを決定します。デフォルトは true です。
versioninteger
オプション
アセットのバージョン。デフォルトは最新バージョンです。
folderstring
オプション
アセットを含むフォルダ。デフォルトは "" です。
absolute_pathstring
オプション
アセットの絶対パス。デフォルトはルートフォルダです。
root_folderboolean
オプション
ルートフォルダの名前。デフォルトは false です。
unreachableboolean
オプション
アセットが到達不能かどうか。デフォルトは false です。
zip_namestring
オプション
エクスポートされたzipファイルの名前。デフォルトでは、Workatoはこの構造で名前を自動生成します:asset_#{index}.#{type}.json
folder_idinteger
オプション
アセットを含むフォルダのID。デフォルトはルートフォルダです。

サンプルリクエスト

shell
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
            }
          }
          '

レスポンス

json
{
  "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削除されました。
{: .api-in## エクスポートマニフェストの更新

エクスポートマニフェストを更新

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です。デフォルトはルートフォルダです。

サンプルリクエスト

shell
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
            }
          }
          '

レスポンス

json
{
  "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パラメータ

名前タイプ説明
idinteger
string
依存関係のIDです。

サンプルリクエスト

shell
curl  -X GET 'https://www.workato.com/api/export_manifests/12' \
      -H 'Authorization: Bearer <api_token>'

レスポンス

json
{
  "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_idstring
required
Workato組み込み顧客アカウントのID/外部ID。
外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。
folder_idstring
required
フォルダーIDです。
restart_recipesboolean
optional
実行中のレシピを再起動するためには、値をtrueに設定する必要があります。
実行中のレシピがある場合、このパラメータがfalseまたは指定されていない場合、パッケージをインポートすることはできません。

サンプルリクエスト

shell
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'

レスポンス

json
{  
   "id":251,
   "operation_type":"import",
   "status":"completed"
}

パッケージのインポートステータスを取得する

顧客アカウントにインポートされたパッケージの詳細を取得します。

GET /api/managed_users/:id/imports/:package_id

URLパラメーター

名前タイプ説明
managed_user_idstring
必須
Workato Embeddedの顧客アカウントID/外部ID。
外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。
package_idstring
必須
パッケージID。

サンプルリクエスト

shell
curl  -X GET 'https://www.workato.com/api/managed_users/91829/imports/198' \
      -H 'Authorization: Bearer <api_token>'

レスポンス

インポート成功

インポートが正常に完了した場合、以下のレスポンスが返されます。

インポート結果

完了したインポートについては、各レシピのimport_resultも確認することが重要です。可能なimport_resultの値について詳しくはこちらをご覧ください。

json
{
   "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の値について詳しくはこちらをご覧ください。

json
{  
   "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_idstring
必須
埋め込みユーザーアカウントIDまたは外部ID。外部IDはEで始まる必要があり、結果のIDはURLエンコードする必要があります。
manifest_idstring
必須
エクスポートするマニフェストのID。

サンプルリクエスト

shell
curl  -X POST 'https://www.workato.com/api/managed_users/91829/exports/508' \
      -H 'Authorization: Bearer <api_token>'

レスポンス

json
{
      "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_idstring
必須
埋め込まれたユーザーアカウントIDまたは外部ID。外部IDはEで始まる必要があります。例えば、EA2300となり、結果のIDはURLエンコードされる必要があります。
package_idstring
必須
パッケージのID。

サンプルリクエスト

shell
curl  -X GET 'https://www.workato.com/api/managed_users/91829/exports/370' \
      -H 'Authorization: Bearer <api_token>'

レスポンス

json
{
      "id":370,
      "operation_type":"export",
      "status":"completed",
      "export_manifest_id":513,
      "download_url":"<https://www.example.com>"
}

Last updated: