メインコンテンツまでスキップ

REST API リファレンス

Insight は、ブラウザの制御機能を HTTP API として公開します。これを使用すると、正常性チェック、メディアのインポート、ストリーミングソースの設定、ビューアーの検出、ワークスペースの検査、ランタイムの診断などを自動化できます。

実行中のサービスは、次の 2 つの API ドキュメントのエンドポイントを公開します。

  • GET /api/docs を実行すると、インタラクティブな Swagger UI が開きます。
  • GET /api/openapi.json は、クライアント生成やその他のツールで使用するための OpenAPI 3.1 ドキュメントを返します。

デフォルトのローカルインストールの場合、以下を開きます。

https://127.0.0.1:9900/api/docs

Insight は通常、ローカルで生成された開発証明書を使用します。コマンドラインクライアントは、その証明書を信頼するか、ローカルでの診断に -k を使用する必要がある場合があります。

curl -k https://127.0.0.1:9900/api/health
curl -k https://127.0.0.1:9900/api/openapi.json -o neat-insight-openapi.json

一般的な自動化フロー

ファイルをアップロードし、ソーススロットに割り当てて、再生を開始します。

curl -k -F "file=@person_clip.mp4" \
https://<INSIGHT_HOST>:9900/api/upload/media

curl -k -H "Content-Type: application/json" \
-d '{"index":1,"file":"person_clip.mp4"}' \
https://<INSIGHT_HOST>:9900/api/mediasrc/assign

curl -k -H "Content-Type: application/json" \
-d '{"index":1}' \
https://<INSIGHT_HOST>:9900/api/mediasrc/start

アサインメントや再生状態を変更する前に、/api/mediasrc をお読みください。可能な場合は、メディアを削除する前に、アクティブなソースを停止してください。

レスポンスとストリーミングに関する規則

  • ほとんどのエンドポイントは、JSON形式でデータを返します。エラーが発生した場合は、通常、HTTPエラーステータスとともに{"error": "message"}が表示されます。
  • アップロードおよびインポートでは、単一のJSONオブジェクトではなく、ストリーミングの進行状況がtext/plain形式で返されます。
  • /api/neat-metrics は、サーバーから送信されるイベントストリームです。
  • MJPEG プレビューおよびソースエンドポイントは、マルチパート形式の画像ストリームを返します。
  • メディアおよびワークスペースの生ファイルエンドポイントは、要求されたバイナリコンテンツを返します。

SwaggerのUIは、Insightと同じホストを使用するため、「試してみる」リクエストは現在のインストール環境を対象とします。削除、リセット、開始、停止などの操作は、サービスのステータスを即座に変更します。

API グループ

OpenAPI ドキュメントは、操作を目的別にグループ化します。

  • サービスとシステム — 健全性、環境、構成の詳細、メトリクス、ログ、およびオプションのツール。
  • 診断 — RTP の受信、WebRTC の送信、およびサーバーから送信される指標。
  • メディアライブラリとインポート — カタログ表示、YouTubeからのインポート、アップロード、削除、詳細確認、プレビュー、ダウンロード。
  • メディアソース — 割り当てと RTSP/HTTP 再生制御。
  • ビューワー — ブラウザからアクセス可能なビューワーの URL と、設定されたチャンネルのキャパシティ。
  • ワークスペース — ワークスペース内のファイルや MPK アーカイブのメンバーを参照、検索、確認、プレビューします。
  • DevKit シェル — 設定が完了すると、ホストされているシェルブリッジを検出し、起動します。

生のOpenAPIファイルも、Insightリポジトリのneat_insight/openapi.jsonに保存されています。テストでは、このファイルの操作とFlaskに登録されている/apiのルートを比較するため、参照を更新せずに新しいエンドポイントを静かに追加することはできません。