github編集

APIの使用

コマンダーサービスモードにおけるAPI利用

APIバージョン

このサービスでは、キュー設定に基づいて2種類のAPIバージョンを利用できます。

  • /api/v2/ – キュー有効 (デフォルト): 非同期処理方式でリクエストが失われません

  • /api/v1/ – キュー無効 (v17.1.6以前): 同期方式で直接実行します

circle-info

v2のキューAPIはコマンダー17.1.7で追加されました (リリース日: 2025年8月28日)。

リクエストキューシステム (API v2)

キューが有効な場合(デフォルト)、サービスは非同期リクエストキューを利用し、次の特長を備えています。

  • 順次処理: リクエストはFIFO順に1件ずつ処理

  • リクエスト追跡: 各リクエストに固有IDを付与し、状態を確認可能

  • リクエスト喪失防止: すべてのリクエストがキューに登録され確実に処理

  • 結果取得: リクエストIDを使って非同期で結果を取得

キューAPIエンドポイント

リクエスト送信 (非同期)

curl -X POST 'http://localhost:<port>/api/v2/executecommand-async' \
--header 'Content-Type: application/json' \
--header 'api-key: <your-api-key>' \
--data '{"command": "tree"}'

応答 (202 Accepted)

リクエスト状態の確認

応答

結果の取得

応答 (完了済みリクエストの場合、api/v1 の直接実行と同様)

キュー状態の取得

応答

リクエスト状態

  • queued - リクエストを受け付けてキューで待機中

  • processing - 実行中

  • completed - 正常に完了

  • failed - 実行エラー

  • expired - 期限内に処理されずタイムアウト

キュー設定

キューシステムは以下のように構成されています。

エラー応答

  • 503 Service Unavailable - キューが満杯

  • 404 Not Found - リクエスト ID が存在しない

  • 500 Internal Server Error - コマンド実行エラー

  • 429 Too Many Requests - レート制限に達した


直接実行 (API v1)

キューが無効の場合は、従来の同期エンドポイントを使用します。

Ngrokを使用する場合のCurl コマンド

Cloudflareを使用する場合のCurlコマンド

ファイル入力パラメータ (FILEDATA)

ファイル入力が必要なコマンドでは、filedata フィールドに JSON を渡し、ファイル名として FILEDATA を指定できます。物理ファイルのアップロードを行わずに、REST API を通じてファイルベース処理を実行できます。

FILEDATAの例

PAMプロジェクトのインポート

インポートコマンド

FILEDATA の特長

  • Automatic Processing: 手作業でファイルを扱う必要なし

  • Temporary File Management: 一時ファイルの作成と削除をサービス側で自動処理

  • Security: 機密データがログで自動マスクされるため安全

  • Error Handling: エラー発生時も確実にクリーンアップ

  • Both API Versions: /api/v1/executecommand/api/v2/executecommand-async の両方で利用可能

Postman

Postmanアプリからもリクエストを送信できます。Content-Type ヘッダと api-key ヘッダを設定してください。以下は参考画像です。

PostmanにおけるHTTPボディ設定
Postmanでのヘッダ構成
Postmanでv2APIのリクエストとレスポンス構造を確認する方法

api/v1 の全レスポンス、および api/v2 の結果取得は共通の基本形式を使用します。

コマンドごとの応答について

一部のコマンドはJSON形式で見やすく整形されるよう変更されています。その他のコマンドはコマンダー CLIと同じ形式でデータを返します。

整形済み出力の例

list (ls) コマンド

tree コマンド

mkdir コマンド

record-add コマンド

search record コマンド

search folder コマンド

get コマンド

--format=json を有効化したコマンド (例: audit-report --format=json)

最終更新