NGSI-LDにも挑戦


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


Column
Link
用語集

Coppell

Technologies

 2. PCへのインストール  3.8節



3.8.Entityデータの読み出し
2022年8月10日
 次は、格納したデータを読みだしてみましょう。以下のコマンドを打ってください。

curl -X GET 'http://localhost:1026/ngsi-ld/v1/entities/urn:ngsi-ld:Store:101' -H 'Accept: application/ld+json'

そうすると、結果が以下の様に帰ってくるはずです。
PS C:\Users\owner> curl -X GET 'http://localhost:1026/ngsi-ld/v1/entities/urn:ngsi-ld:Store:101' -H 'Accept: application/ld+json'
{"@context":"https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld","id":"urn:ngsi-ld:Store:101","type":"https://schema.org/Store","https://schema.org/address":{"type":"Property","value":{"https://schema=org/streetAddress":"長沼町202-5","https://schema=org/addressLocality":"八王子市","https://schema=org/addressRegion":"東京都","https://schema=org/postalCode":"1920907"}},"location":{"type":"GeoProperty","value":{"type":"Point","coordinates":[139.37158,35.64226]}},"name":{"type":"Property","value":"ローソン八王子長沼町店"}}
PS C:\Users\owner>

見やすく整形したい場合はjson Pretty Linter などの整形ツールを使うと便利です。このサイトを使うと構文チェックと整形をしてくれます。今回は、以下の様に整形してくれました。

{
   "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
   "id": "urn:ngsi-ld:Store:101",
   "type": "https://schema.org/Store",
   "https://schema.org/address": {
       "type": "Property",
       "value": {
           "https://schema=org/streetAddress": "長沼町202-5",
           "https://schema=org/addressLocality": "八王子市",
           "https://schema=org/addressRegion": "東京都",
           "https://schema=org/postalCode": "1920907"
       }
   },
   "location": {
       "type": "GeoProperty",
       "value": {
           "type": "Point",
           "coordinates": [
               139.37158,
               35.64226
           ]
       }
   },
   "name": {
       "type": "Property",
       "value": "ローソン八王子長沼町店"
   }
}

登録したEntityが読み出されている事がわかります。尚、curlでは、イチイチファイルにEntityを書き込まなくても-dパラメータの後にシングルクォートで囲ってEntityを書けばいいことになっていますが、筆者の経験ではWindows環境ではうまく動かない事が多いです。これは、シングルクォートやダブルクォートの扱いがWindowsとLinuxで違う事が原因の様です。また、PowerShellではなく、コマンドプロンプトやWindows Terminalで動かす事例もありますが、筆者が試したところではうまく動きませんでした。Windows Terminalに至っては、バグだからサポートに連絡してくれという趣旨のエラーになりました。

 ここまでで、Orionの環境が正常に動き、簡単な操作が動作することを確認しました。

 本章の最後に後片付けについても触れておきます。Orionのコンテナの停止と削除は、

docker stop fiware-orion
docker rm fiware-orion

の二つを投入する事で可能です。
 実は、runコマンドは、createとstartの二つのコマンドを一括して実行するコマンドだったので、停止するためには二つのコマンドが必要となります。
 同様に、Mongo-dbの停止と削除はそれぞれ

docker stop mongo-db
docker rm mongo-db
最後にネットワークの削除は以下となります。

docker network rm fiware_default

この状態でimageはローカルに保存されていますので、再実行するときにはdocker pullは必要なく、runから始めれば大丈夫です。
更に、imageまで削除する場合は以下です。

docker rmi mongo:4.4
docker rmi fiware/orion-ld
ここではimageの名前指定でコマンドを実行しましたが、本来イメージIDを指定するものなので、見つからないというエラーになることがあるようです。その場合は名前ではなく、イメージIDを指定してやり直して下さい。イメージIDは、下記の"docker images"で確認できます。
尚、mongoのimageを削除すると、格納したEntityも消えてしまいますので、ご注意ください。

最後に、コンテナ、image、ネットワークが残っていないか確認しましょう。

docker container ps -a
docker images
docker network ls
これで元に戻りました。