CLI を使い始める

api

orc api は、ターミナルからOrchestor APIへ認証付きのHTTPリクエストを送信するコマンドです。他のCLIコマンドと同じ認証情報を使用し、公開API契約に含まれるメソッドとパスを一覧から確認して、クエリーやJSON本文を指定した呼び出しを実行できます。

専用コマンドがない操作の探索、応答を調べるデバッグ、スクリプトへの組み込みに使用します。実行前に orc auth login でログインするか、CLIが使用する認証を設定してください。接続先はCLIに設定されたOrchestor APIで、現在の認証主体の権限が適用されます。一覧は公開契約のカタログであり、操作権限の判定結果ではありません。

使い方

terminal
orc api list

公開APIのメソッド、パス、説明を確認します。

terminal
orc api request GET /v1/users/me

現在の認証主体のプロフィールを取得します。

サブコマンド

list

CLIに同梱された公開API契約から、HTTPメソッド、パス、operationId、説明を一覧で返します。認証が必要です。アカウントごとの操作権限は絞り込まず、リクエスト実行時にサーバーが確認します。 orc api ls は orc api list の別名です。

terminal
orc api list [options]

使用例

terminal
orc api list --json

スクリプト向けにAPIの一覧をJSONで返します。

request

HTTPメソッドと、/ から始まるAPIパスを指定して実行します。対応するメソッドは GET、POST、PUT、PATCH、DELETE です。メソッドの省略や本文からの自動推定は行いません。パスは api list に表示される公開契約に一致する必要があります。{id} などのパスパラメーターは実際のリソースIDに置き換えてください。

クエリーは引用符で囲んだパスに指定します。未知のクエリーや、同じ項目をパスとフラグで重ねた指定はエラーになります。JSON本文を持つ作成・更新操作では --stdin でJSONオブジェクトを渡し、API契約の型・必須項目に従って検証します。

terminal
orc api request <method> <path> [options]

使用例

profile.json に {"locale":"ja"} のようなJSONオブジェクトを保存します。プロフィール変更には人間のアカウント認証とサーバー側の権限が必要です。

terminal
orc api request PATCH /v1/users/me --stdin < profile.json

保存したJSONからプロフィールを更新します。

ls

List public contract operations; server authorization still applies

terminal
orc api ls [options]

使用例

現在の認証主体を取得する

保存済みの認証を引き継いで、自分のプロフィールをJSON envelopeで返します。

terminal
orc api request GET /v1/users/me

現在の認証主体を取得する

Workspaceを指定して情報を取得する

--workspace で送信する X-Workspace-ID を指定します。指定したWorkspaceへのアクセス権はサーバーが確認します。

terminal
orc api request GET /v1/workspaces/<workspace-id> --workspace <workspace-id>

Workspaceを指定して情報を取得する

JSONファイルからリクエスト本文を渡す

本文を持つ作成・更新操作で使用します。ファイルのリダイレクトも、パイプで渡すJSONも同じ標準入力として扱います。

terminal
orc api request PATCH /v1/users/me --stdin < profile.json

JSONファイルからリクエスト本文を渡す

クエリーで一覧の取得件数を指定する

対象APIが定義するクエリーをパスに追加します。クエリーの名前、型、必須条件は公開API契約に従います。

terminal
orc api request GET '/v1/workspaces?limit=10'

クエリーで一覧の取得件数を指定する

一覧の全ページを取得する

cursorによるページ分割を持つAPIでは、全ページのレコードを1行ずつNDJSONで出力します。--json、--pretty、JSONなどの --format とは併用できません。必要に応じて --output でファイルに保存してください。

terminal
orc api request GET /v1/workspaces --page-all

一覧の全ページを取得する

削除の確認を省略する

削除対象を確認してから実行してください。--yes はCLIの確認を省略します。サーバーの認可や削除条件は引き続き適用されます。

terminal
orc api request DELETE /v1/brands/<brand-id> --workspace <workspace-id> --yes

削除の確認を省略する

応答の項目を取り出す

--field は応答の項目を取り出すフラグです。リクエスト本文のフィールドを追加する用途ではありません。

terminal
orc api request GET /v1/users/me --field id --raw

応答の項目を取り出す

リクエストの所要時間を確認する

応答を標準出力へ、所要時間を標準エラー出力へ返します。

terminal
orc api request GET /v1/users/me --timing

リクエストの所要時間を確認する

動作の流れ

  1. CLIが現在の認証情報を解決します。
  2. メソッドとパスを同梱された公開API契約と照合し、クエリーとJSON本文を検証します。
  3. 設定されたAPIへ認証を付けて送信します。Workspaceを指定した場合は X-Workspace-ID も付与します。
  4. サーバーが現在の認証主体のアクセス権を確認し、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 を指定してください。これは操作権限を変更するものではありません。

関連項目