NX WitnessのAPIを動かしてみる
今回は、NX WitnessのAPIを動作してみることにする。まずは、NX Witnessをインストールする必要がある。インストール方法については、前回の記事を参考にして欲しい。
APIのドキュメントを参照する
NX WitnessのAPIについては、一般に公開されているため、WEBで閲覧することができる。技術者の方は以下のURLを参照して欲しい。
https://meta.nxvms.com/doc/developers/api-tool/
※または、インストールしたサーバーに接続してAPIのドキュメントを参照することもできる。
今回は、NX Witnessに”イベント情報”を作成する方法について検証したい。
画面左上に、虫眼鏡のアイコンがあるので”Event”と入力し、検索を行う。
『/api/createEvent POST』という項目がある。これが、新たにNX Witnessのサーバーに対してイベントを作成する方法だ。
あとは、このようにサンプルの例文が表示されるので、この文字列を変更するだけだ。
ここで、 "cameraRefs"という項目がある。
"cameraRefs"については、NX Witnessサーバーでカメラ設定を開くと、”カメラID”というものが表示されるので、これをコピー&ペーストすればよい。
事前設定
NX Witnessでは、Bearerトークンを利用したユーザー認証が推奨されている。しかしながら、既存のアプリケーションとの連携によっては、Bearerトークンをうまく利用できないこともあるだろう。
そのため、システム連携用のユーザーを新たに作成する。
画面左上の『三』をクリックし、『ユーザー管理』画面を起動する。『新規ユーザーの作成』ボタンを押下する。
ここでAPI連携用のユーザーを作成する。なお、ロールは今回、”管理者”として作成することにした。
また、ここが最も重要なポイントであるが、『有効 : 』の ”:”ボタンをクリックすると、『このユーザーのdigest認証を許可する』という表示が起動するので、digest認証を許可した状態で『OK』ボタンをクリックする。
これで、digest認証でのAPI連携が可能となる。
POSTMANによる検証
それでは早速、検証を行う。
HTTPのリクエストには以下のように記述する。
POST https://127.0.0.1:7001/api/createEvent
※ポート番号が『7001』となっているが、これはNX Witnessのデフォルトのサーバーポートが"7001”であるためだ。
BODYについては、以下のように記述した。
※今回、POSTMANでコマンドを投げたタイミングでVMS側にログを残したいため、タイムスタンプについては、記載を除外した。
(タイムスタンプを残したままだと、タイムスタンプの日時でVMS側にログが残ることとなる。)
{
"caption": "test",
"metadata": {
"cameraRefs": [
"カメラのID番号"
]
}
}
NW Witness側のアクションの設定
実際にこのイベントのリクエストが発生した場合に、NX Witness側でどのようなアクションを実行させるのか定義する。
右クリックして、『カメラルール』を開く。画面右上の『+追加』ボタンを押下する。トリガーで『汎用イベント』を選択する。
キャプションに次の内容を含むの欄に、先ほどPOST MANの検証時に記述していた"test"と入力する。あとは、画面右側のアクションメニューにて、このイベントが発生した際に、どのような挙動を発生させるのか定義するだけだ。
動作検証
実際にテストを行ってみよう。
このようにPOSTMANでコマンドを投げることで、汎用イベントを発生させることに成功した。
比較的、簡単なAPIの連携方法であるため、NX Witnessに対して、何らかのイベントを発生させたい場合は、試してみると良いだろう。