api
orc api は、ターミナルからOrchestor APIへ認証付きのHTTPリクエストを送信するコマンドです。他のCLIコマンドと同じ認証情報を使用し、公開API契約に含まれるメソッドとパスを一覧から確認して、クエリーやJSON本文を指定した呼び出しを実行できます。
専用コマンドがない操作の探索、応答を調べるデバッグ、スクリプトへの組み込みに使用します。実行前に orc auth login でログインするか、CLIが使用する認証を設定してください。接続先はCLIに設定されたOrchestor APIで、現在の認証主体の権限が適用されます。一覧は公開契約のカタログであり、操作権限の判定結果ではありません。
使い方
orc api list公開APIのメソッド、パス、説明を確認します。
orc api request GET /v1/users/me現在の認証主体のプロフィールを取得します。
サブコマンド
list
CLIに同梱された公開API契約から、HTTPメソッド、パス、operationId、説明を一覧で返します。認証が必要です。アカウントごとの操作権限は絞り込まず、リクエスト実行時にサーバーが確認します。 orc api ls は orc api list の別名です。
orc api list [options]使用例
orc api list --jsonスクリプト向けにAPIの一覧をJSONで返します。
request
HTTPメソッドと、/ から始まるAPIパスを指定して実行します。対応するメソッドは GET、POST、PUT、PATCH、DELETE です。メソッドの省略や本文からの自動推定は行いません。パスは api list に表示される公開契約に一致する必要があります。{id} などのパスパラメーターは実際のリソースIDに置き換えてください。
クエリーは引用符で囲んだパスに指定します。未知のクエリーや、同じ項目をパスとフラグで重ねた指定はエラーになります。JSON本文を持つ作成・更新操作では --stdin でJSONオブジェクトを渡し、API契約の型・必須項目に従って検証します。
orc api request <method> <path> [options]使用例
profile.json に {"locale":"ja"} のようなJSONオブジェクトを保存します。プロフィール変更には人間のアカウント認証とサーバー側の権限が必要です。
orc api request PATCH /v1/users/me --stdin < profile.json保存したJSONからプロフィールを更新します。
ls
List public contract operations; server authorization still applies
orc api ls [options]使用例
現在の認証主体を取得する
保存済みの認証を引き継いで、自分のプロフィールをJSON envelopeで返します。
orc api request GET /v1/users/me現在の認証主体を取得する
Workspaceを指定して情報を取得する
--workspace で送信する X-Workspace-ID を指定します。指定したWorkspaceへのアクセス権はサーバーが確認します。
orc api request GET /v1/workspaces/<workspace-id> --workspace <workspace-id>Workspaceを指定して情報を取得する
JSONファイルからリクエスト本文を渡す
本文を持つ作成・更新操作で使用します。ファイルのリダイレクトも、パイプで渡すJSONも同じ標準入力として扱います。
orc api request PATCH /v1/users/me --stdin < profile.jsonJSONファイルからリクエスト本文を渡す
クエリーで一覧の取得件数を指定する
対象APIが定義するクエリーをパスに追加します。クエリーの名前、型、必須条件は公開API契約に従います。
orc api request GET '/v1/workspaces?limit=10'クエリーで一覧の取得件数を指定する
一覧の全ページを取得する
cursorによるページ分割を持つAPIでは、全ページのレコードを1行ずつNDJSONで出力します。--json、--pretty、JSONなどの --format とは併用できません。必要に応じて --output でファイルに保存してください。
orc api request GET /v1/workspaces --page-all一覧の全ページを取得する
削除の確認を省略する
削除対象を確認してから実行してください。--yes はCLIの確認を省略します。サーバーの認可や削除条件は引き続き適用されます。
orc api request DELETE /v1/brands/<brand-id> --workspace <workspace-id> --yes削除の確認を省略する
応答の項目を取り出す
--field は応答の項目を取り出すフラグです。リクエスト本文のフィールドを追加する用途ではありません。
orc api request GET /v1/users/me --field id --raw応答の項目を取り出す
リクエストの所要時間を確認する
応答を標準出力へ、所要時間を標準エラー出力へ返します。
orc api request GET /v1/users/me --timingリクエストの所要時間を確認する
動作の流れ
- CLIが現在の認証情報を解決します。
- メソッドとパスを同梱された公開API契約と照合し、クエリーとJSON本文を検証します。
- 設定されたAPIへ認証を付けて送信します。Workspaceを指定した場合は
X-Workspace-IDも付与します。 - サーバーが現在の認証主体のアクセス権を確認し、CLIが応答を出力します。
既定の出力は success、data、metadata を持つJSON envelopeです。資格情報のフィールドは出力時に秘匿されます。失敗理由は標準エラー出力に返し、スクリプトでは終了コードで成功・失敗を判定してください。
探索には orc api list を使います。API契約はCLIに同梱されており、実行のたびに取得するものではありません。外部URL、// から始まるパス、パスの遡り、内部・バックエンド専用APIは受け付けず、リダイレクトにも追従しません。
グローバルオプション
orc api では、次のグローバルオプションを使用できます。
各オプションの詳細と使用例は、グローバルオプションを参照してください。
トラブルシューティング
メソッドやパスが受け付けられない
orc api list でメソッドとパスを確認してください。パスの末尾、リソースID、メソッドも契約に一致する必要があります。新しいAPIが一覧にない場合はCLIのバージョンを確認してください。
認証や権限のエラーになる
認証を確認し、必要に応じて orc auth login でログインし直してください。Workspaceを指定した場合は、そのWorkspaceへのアクセス権も確認してください。一覧にある操作でも、現在のアカウントに許可されているとは限りません。
JSON本文の検証に失敗する
--stdin に有効なJSONオブジェクトを渡し、対象APIの必須項目と型を確認してください。配列や単一の文字列はリソース定義として受け付けません。本文は POST、PUT、PATCH の操作で使用します。
非対話環境で削除できない
DELETE は確認を必要とします。スクリプトでは削除対象を確認した上で --yes を指定してください。これは操作権限を変更するものではありません。