APIの作成(HTTP request Nodeの利用)

1.概要

GCP(Google Cloud Platform)のVM(Virtual Machine)上のデータベースに蓄えたセンサデータの解析やバックアップ(長期保管)のために、VM上のデータベースのデータを外部からアクセスして取り出す必要があります。そのためにVMにアクセスする方法の一つとして、API(Application Programming Interface)を定義してデータの取得を行う方法があります。
いちご農家のビニールハウスの環境データ(気温、湿度、気圧、空気清浄度、二酸化炭素濃度)をVMのデータベース上に蓄積し、APIで呼び出す実験を行いましたので報告します。
APIを解読して、データベースにアクセスしデータを返す処理は、Node-REDで実現しました。

 

2.APIの仕様

2-1.APIのフォーマット

以下の5つのデータをJSONフォーマットでHTTP Requestの“GET”メソッドで送信します(date情報はオプション)。

JSONの例

{“login”:”sample@abc.ad.jp”,
  “passid”:”abc123xyz789”,
  “sensor”:”BME680”,
  “node”:2,
  “date_from:”,”2022-06-11T13:30:00+9:00”,
  ”date_to”:”2022-06-12T13:30:00+9:00”}

2-2.取得できる(返される)データ

APIで指定したノード、センサ、日付のデータを取得できます.

2-3. nodeの説明

Node番号は、いちご農家で各R-MSMに接続されたLPWA(Low Power Wide Area)無線機の番号です。
事務所のGateWayに接続された親機がNode1で、子機は5台でNode2~Node6まであります。

2-4.ステータスコード

HTTP Responseのステータスコードとして下記の番号を返却します。’200’はOKです。

2-5.dateの補完処理

date情報はオプションです。省略された場合以下の様に補完処理を行います。

[注意事項]

日付が誤っていたりした場合には、データが返りますが、補完された日付の場合があります。日付を確認いただくか、ステータスコードを確認ください。

3. APIの実装内容

3-1. 実装項目

GCPのVM上のNode-REDで上記APIのアクセスを処理します。処理内容は、大きく次の6つです。
 1) login名とpassidのチェック
 2) sensor名のチェック
 3) dateの妥当性チェック
 4) nodeの妥当性チェック
 5) sensorとdateとnodeがOKであれば、
   a. データベースからデータを取り出す
   b. Logに記録を残す(login名とpassidとアクセス内容)
  6) HTTP Responseを返す

3-2. Node-REDの実装

4. テスト

4-1. テスト項目

以下の18項目を代表のテストとして行いました。

4-2. テストのNode-RED実装

5. Node-REDでの取得例