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

GLOSSARY

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

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

# クイックリファレンス

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

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

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

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 integer
string
依存関係のIDです。

# ペイロード

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

名前 タイプ 説明
name string
optional
マニフェストの名前。この値を更新してマニフェストの名前を変更します。デフォルトは以前の名前です。
assets object
required
依存するアセット。
id integer
required
依存関係のIDです。
type string
required
依存するアセットのタイプです。
checked boolean
optional
アセットがマニフェストに含まれるかどうかを決定します。デフォルトは true です。
version integer
optional
アセットのバージョンです。デフォルトは最新バージョンです。
folder string
optional
アセットを含むフォルダです。デフォルトは "" です。
absolute_path string
optional
アセットの絶対パスです。デフォルトはルートフォルダです。
root_folder boolean
optional
ルートフォルダの名前です。デフォルトは false です。
unreachable boolean
optional
アセットが到達不能かどうかを示します。デフォルトは false です。
zip_name string
optional
エクスポートされたzipファイルの名前です。デフォルトでは、Workatoはこの構造で名前を自動生成します:asset_#{index}.#{type}.json
folder_id integer
optional
アセットを含むフォルダの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": "動作中"
  }
}

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

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

WARNING

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

POST /api/packages/export/:id

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

# URLパラメータ

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

# サンプルリクエスト

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

# レスポンス

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

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

# サンプルリクエスト

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'

# レスポンス

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

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

# サンプルリクエスト

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

# レスポンス

  • 完了したエクスポートマニフェストの取得からのレスポンスを示します。
{
   "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"
}
  • 失敗したエクスポートマニフェストの取得からのレスポンスを示します。
{
   "id":242,
   "operation_type":"export",
   "status":"failed",
   "error":"error_message",
   "export_manifest_id":4,
   "download_url":"null"
}
  • これは、完了したインポートの取得からのレスポンスを示しています。

NOTE

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

{
   "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"
      }
   ]
}
  • これは、失敗したインポートの取得からのレスポンスを示しています。

NOTE

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

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

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

# サンプルリクエスト

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

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

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

# レスポンス

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


Last updated: 2024/2/13 16:59:53