4.2. センサデータの参照

エッジで収集したセンサデータは収集された結果のイベントとして、MongoDBに追記されていきます。

この格納されたセンサデータを参照・削除するためのAPIとしてBackend API(REST API)を提供しています。

ICEが提供するMongoDBは一時的なセンサデータの格納先としての利用を想定しています。 センサデータを永続的に格納し別途バッチ処理する等の用途での利用は想定していません。

既読フラグを付けながら参照し、既読済みデータを定期的に削除してください。

4.2.1. センサデータ取得

下記のAPIを実行することで、センサデータを取得することができます。

GET /backend/event_data
GET /backend/event_data/{data_type}

センサデータのデータタイプ(data_type)を指定してデータ取得する場合、後者のAPIを使用します。

APIを実行した結果、MongoDBに格納されているセンサデータが下記のようなフォーマットで取得できます。

{
    "results": [
        {データ1件目},
        {データ2件目},
        {データ3件目},
        …
        {データn件目}
    ],
     "count": n
}

クエリパラメータ無指定の状態でAPI実行すると、MongoDBに格納されているセンサデータ全てを一度のリクエストで取得しようとします。limitパラメータを使用して、一度に取得するセンサデータ数の上限を設定することができます。offsetパラメータを併用して、指定件数のデータを読み飛ばすこともできます。

例) 100件読み飛ばして100件のデータを取得する場合

GET /backend/event_data?offset=100&limit=100

markedパラメータを使用すると、センサデータに既読フラグ(marked:true)をセットすることができます。これを利用して、新規追加されたセンサデータだけを取得することができます。

例) markedプロパティがfalseのデータを取得し、取得したデータのmarkedプロパティにtrueをセットする場合

GET /backend/event_data?marked=true&filter={"marked":false}
※ 実際には、クエリパラメータはURLエンコーディングする必要があります。
※ レスポンスが返却される前に並行してAPIを実行すると、取得済みのデータが再度取得されることがあります。

APIの詳細については、APIリファレンスを参照してください。

4.2.2. センサデータ削除

下記のAPIを実行することで、センサデータを参照することができます。

DELETE /backend/event_data
DELETE /backend/event_data/{data_type}

センサデータのデータタイプ(data_type)を指定してデータ削除する場合、後者のAPIを使用します。

APIを実行した結果、削除件数が下記のようなフォーマットで取得できます。

{
     "count": n
}

filterパラメータでmarkedプロパティを指定することで、既読のセンサデータのみを削除することができます。

例) markedプロパティがtrueのデータのみを削除する場合

DELETE /backend/event_data?filter={"marked":true}

※ 実際には、クエリパラメータはURLエンコーディングする必要があります。

APIの詳細については、APIリファレンスを参照してください。