Fiwareを使って都市OSを動かしてみよう

Munu


データ仕様の現状と課題
スマートシティの標準規格(案)
データモデルのユースケース
ツール


Column
Link
用語集

Coppell

Technologies

 5. NGSI v2のAPI 5.6-5.6.3節




5.6.検索処理
2022年4月11日
 5.2節でOrionのオプションについて簡単に説明しましたが、ここではGETを中心に、より複雑なオプションについて確認していきましょう。



5.6.1.Entity指定
2022年4月11日
 特定のentityを指定する場合は、オプションではなく、urlのエンドポイント(パスの一番右のディレクトリ)をentityのidにします。例えば、Store001の場合は、以下のようになります。

curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001'

そうすると、以下の様にEntity全体が表示されます。
PS C:\Users\owner> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001'
{"id":"urn:ngsi-ld:Store:001","type":"Store","address":{"type":"PostalAddress","value":{"streetAddress":"長沼町202-5","addressLocality":"八王子市","addressRegion":"東京都","postalCode":"1920907"},"metadata":{}},"location":{"type":"geo:json","value":{"type":"Point","coordinates":[139.37158,35.64226]},"metadata":{}},"name":{"type":"Text","value":"ローソン八王 子長沼町店","metadata":{}}}
PS C:\Users\owner>


5.6.2.Attribute全体指定
2022年4月11日
 同じように、idの右に"attrs"というエンドポイントを追加すると、すべてのattributeが表示されます。例えば、以下のようになります。

curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs'

そうすると、以下の様に、idとtype以外のattributeが表示されます。
PS C:\Users\owner> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs'
{"address":{"type":"PostalAddress","value":{"streetAddress":"長沼町202-5","addressLocality":"八王子市","addressRegion":"東京都","postalCode":"1920907"},"metadata":{}},"location":{"type":"geo:json","value":{"type":"Point","coordinates":[139.37158,35.64226]},"metadata":{}},"name":{"type":"Text","value":"ローソン八王子長沼町店","metadata":{}}}
PS C:\Users\owner>

少しだけ通信量が減りますね。

5.6.3.Attribute指定
2022年4月11日
 特定のEntityの特定のAttributeを指定する場合は、attrsの右側にattribute名を指定します。
例えば、以下のようになります。

curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name'

そうすると、以下の様に、nameだけが表示されます。
PS C:\Users\owner> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name'
{"type":"Text","value":"ローソン八王子長沼町店","metadata":{}}
PS C:\Users\owner>

因みに、オプションにkeyValuesを指定すると、値だけを取り出すこともできます。

curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name?options=keyValues'
PS C:\Users\owner> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name?options=keyValues'
{"name":"ローソン八王子長沼町店"}
PS C:\Users\owner>

更に、Valueだけを取り出したい場合は、エンドポイントを"value"にします。例えば以下です。

curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name/value'
PS C:\Users\owner> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001/attrs/name/value'
"ローソン八王子長沼町店"
PS C:\Users\owner>