リクエストワークスペースと環境
リクエストワークスペースは、設計した操作が実際の呼び出しになる場所です。ローカルのメインプロセス経由でリクエストを送り、レスポンスを表示し、実行ごとに変わる値を環境と変数で管理します。
リクエストを送る
- リクエストワークスペースで操作を開きます。メソッド、パス、パラメータ、ヘッダー、ボディは仕様から取られます。
- パスパラメータやトークンなど、具体的な入力が必要な値を埋めます。
- 送信します。タブにステータスコード、レスポンスヘッダー、レスポンスボディ、所要時間が表示されます。
- 複数のリクエストをタブに保持し、比較や再確認に使えます。
実行は WebView ではなくメインプロセスで起きるため、ブラウザの直接的な CORS 制限が呼び出しを妨げず、リクエストの詳細がブラウザのネットワークパネルを通じて露出することもありません。
環境と OAS servers の対比
両者は関連しますが異なります。その違いを理解すると、よくある混乱の元が消えます。
| カスタム環境 | OAS servers | |
|---|---|---|
| 場所 | ローカルアプリ設定 | OpenAPI 文書内 |
| リクエストツールで書けるか | はい | いいえ——仕様パッチで変更 |
| 用途 | 新規リクエストタブとシナリオ実行のデフォルトベース URL | 契約自身が宣言するベース URL |
| 文書と共有されるか | いいえ | はい |
アシスタントがベース URL を列挙するとき(env.listServers)、書き込み可能なカスタム環境を先に、現在の文書で宣言された読み取り専用 servers を後に返します。
- ローカルのベース URL を追加・選択するには、カスタム環境を作成・有効化します(
env.upsertServer、env.selectServer)。これは文書を編集しません。 - 契約内の servers を変更するには、代わりに仕様パッチを提案します。
これにより個人のデバッグ用ベース URL を契約から分けつつ、文書が宣言する servers もリクエストを駆動できます。
変数
変数は 4 つのスコープで管理されます。
- globals——すべてのコレクションで利用可能。
- collection——あるコレクションに適用。
- environment——現在の環境に紐づく。特定の server が指定されない限り、すべての server に適用。
- local——ローカルセッション専用。
アシスタントは変数を列挙し(env.listVariables、スコープでフィルタ可能)、作成・更新できます(env.setVariable、名前とスコープで upsert)。変数は特定の server に紐づけられ、それぞれ有効状態を持ちます。変数の設定はアプリ操作であり、API 文書への変更ではありません。
アクセストークン、呼び出しをまたいで再利用する ID、機能フラグなどを変数にするのが一般的です。
ベース URL が欠けているとき
リクエストには完全な URL が必要です。文書の servers と現在の環境のどちらにもベース URL がない場合、アプリは推測せず、実行前に入力を求めます。間違ったホストを黙って呼ぶより望ましいです。
単一リクエストからフローへ
一度単一の呼び出しが動けば、自然な次のステップは、あるレスポンスの値を次のリクエストに渡すよう呼び出しを連結することです。それがシナリオテストです。
関連: アシスタントで設計する、シナリオテスト、設定。