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

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

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

クイックリファレンス

タイプリソース説明
POSTapi/export_manifestsエクスポートマニフェストを作成します。
PUTapi/export_manifests/:idエクスポートマニフェストを更新します。
GETapi/export_manifests/:idエクスポートマニフェストを表示します。
POST/api/packages/export/:manifest_idマニフェストに基づいてパッケージをエクスポートします。
POST/api/packages/import/:folder_idフォルダにパッケージをインポートします。
GET/api/packages/:idIDによるパッケージの取得。
GET/api/packages/:id/downloadパッケージのダウンロード。

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

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

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削除されました。

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

エクスポートマニフェストを更新します。

PUT /api/export_manifests/:id

URLパラメータ

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

ペイロード

assets[]に含まれるプロパティを更新して、以前に定義されたアセットを置き換えます。

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

マニフェストに基づいてパッケージをエクスポートする

マニフェストに基づいてパッケージをエクスポートします。

WARNING

このエンドポイントへの特権を持つAPIクライアントを提供することで、結果のzipファイルを調べることで、レシピ、ルックアップテーブル、パブサブトピック、メッセージテンプレートなどの他のアセットを表示する能力を間接的に与えることに注意してください。

POST /api/packages/export/:id

これは非同期リクエストです。エクスポートされたパッケージの詳細を取得するには、IDでパッケージを取得するエンドポイントを使用してください。

URLパラメータ

名前タイプ説明
idstring
必須
エクスポートマニフェストのID。

サンプルリクエスト

shell
curl  -X POST 'https://www.workato.com/api/packages/export/<manifest_id>' \
      -H 'Authorization: Bearer <api_token>'

レスポンス

json
{
   "id":242,
   "operation_type":"export",
   "status":"completed",
   "export_manifest_id":3,
   "download_url":"https://www.workato-staging-assets.com/packages/zip_files/000/000/242/original/exportdemo.zip"
}

フォルダーにパッケージをインポートする

パッケージ(zipファイル)をフォルダーにインポートします。

WARNING

このエンドポイントへの特権を持つAPIクライアントを提供することで、パッケージのインポートを通じてレシピ、ルックアップテーブル、パブサブトピック、メッセージテンプレートなどの他のアセットの作成/更新の能力を間接的に与えることに注意してください。

POST /api/packages/import/:id

これは非同期リクエストです。インポートされたパッケージの詳細を取得するには、IDでパッケージを取得するエンドポイントを使用してください。

入力(zipファイル)は、パッケージのコンテンツを含むapplication/octet-streamペイロードです。URLパラメータrestart_recipesは、インポート時に実行中のレシピを再起動するためにtrueである必要があります。

URLパラメータ

名前タイプ説明
idstring
必須
フォルダーのID。
restart_recipesboolean
オプション
実行中のレシピをインポート時に再起動するためには、値をtrueにする必要があります。
実行中のレシピがある場合、このパラメータがfalseまたは指定されていない場合、パッケージをインポートすることはできません。

サンプルリクエスト

shell
curl  -X POST 'https://www.workato.com/api/packages/import/<folder_id>?restart_recipes=true' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/octet-stream' \
      --data-binary @'path/to/local/file.zip'

レスポンス

json
{
   "id":251,
   "operation_type":"import",
   "status":"completed",
   "download_url":"https://www.workato-staging-assets,com/packages/zip_files/000/000/242/original/exportdemo.zip"
}

IDでパッケージを取得する

インポートまたはエクスポートされたパッケージの詳細を取得します。

GET /api/packages/:id

URLパラメータ

名前タイプ説明
idstring
必須
パッケージのID。

サンプルリクエスト

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

レスポンス

  • 完了したエクスポートマニフェストの取得からのレスポンスを示します。
json
{
   "id":242,
   "operation_type":"export",
   "status":"completed",
   "export_manifest_id":3,
   "download_url":"https://www.workato-staging-assets,com/packages/zip_files/000/000/242/original/exportdemo.zip"
}
  • 失敗したエクスポートマニフェストの取得からのレスポンスを示します。
json
{
   "id":242,
   "operation_type":"export",
   "status":"failed",
   "error":"error_message",
   "export_manifest_id":4,
   "download_url":"null"
}
  • これは、完了したインポートの取得からのレスポンスを示しています。

INFO

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

json
{
   "id":242,
   "operation_type":"export",
   "status":"completed",,
   "download_url":"https://www.workato-staging-assets,com/packages/zip_files/000/000/242/original/importdemo.zip",
   "recipe_status":[
      {
            "id": 12345,
            "import_result": "no_update_or_update_without_restart"
      },
      {
            "id": 12346,
            "import_result": "restarted"
      },
      {
            "id": 12347,
            "import_result": "stopped"
      }
   ]
}
  • これは、失敗したインポートの取得からのレスポンスを示しています。

INFO

失敗したインポートの場合、recipe_statusにすべてのレシピが返されない場合があります。これは、インポートが失敗する前に更新されていなかったためです。可能なimport_resultの値について詳しくはこちらをご覧ください。

json
{
   "id":242,
   "operation_type":"export",
   "status":"completed",,
   "download_url":"https://www.workato-staging-assets,com/packages/zip_files/000/000/242/original/importdemo.zip",
   "recipe_status":[
      {
            "id": 12345,
            "import_result": "no_update_or_update_without_restart"
      },
      {
            "id": 12346,
            "import_result": "restarted"
      },
      {
            "id": 12347,
            "import_result": "stopped"
      }
   ]
}

Recipe import_resultの値

合計6つの可能な結果があります:

  1. no_update_or_update_without_restart - レシピに再起動が必要ないことを示します。レシピを更新せずに更新できるか、更新が行われなかったことを示します。インポートに成功しました
  2. not_found - レシピが見つからないときの予期しないエラーです。頻繁に表示されるべきではありません。レシピの更新なしでインポートに失敗しました
  3. stop_failed - 再起動が必要なレシピに対して、レシピの停止を試みます。この状態は、レシピを停止できなかったことを示します。レシピの更新なしでインポートに失敗しました
  4. stopped - Workatoはレシピを停止しましたが、レシピにエラーがあるため再起動されませんでした。レシピの更新ありでインポートに失敗しました
  5. restart_failed - Workatoはレシピの再起動を試みましたが、失敗しました。レシピの更新ありでインポートに失敗しました
  6. restarted - Workatoはレシピを正常に再起動しました。インポートに成功しました

パッケージのダウンロード

パッケージをダウンロードします。

GET /api/packages/:id/download

URLパラメータ

名前タイプ説明
idstring
必須
パッケージのID。

サンプルリクエスト

shell
curl  -L -X GET 'https://www.workato.com/api/packages/<package_id>/download' \
      -H 'Authorization: Bearer <api_token>'

cURLでリダイレクトをフォローする

リダイレクトパスをたどるには、-Lフラグを使用します。

レスポンス

成功した場合、パッケージの内容にリダイレクトされます。パッケージが見つからないか、内容がない場合は404が返されます。

Last updated: