NGSI-LDにも挑戦


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


Column
Link
用語集

Coppell

Technologies

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



3.7.Entityを生成してみよう
2022年8月10日
 次は、Entityを作って実際に登録して、Orionが動いていることを確認しましょう。
 実は、コンテキストの定義は既に世の中にあります。以下は、https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonldの内容で、一般にはCore @Contextと呼ばれているものを抜粋したものです。実際にはこれらの他にも非常に沢山の定義が入っていますので、一度ご覧になると良いと思います。


{
 "@context": {
   "ngsi-ld": "https://uri.etsi.org/ngsi-ld/",
   "geojson": "https://purl.org/geojson/vocab#",
   "id": "@id",
   "type": "@type",
   "GeoProperty": "ngsi-ld:GeoProperty",
   "location": "ngsi-ld:location",
   "value": "ngsi-ld:hasValue",
}

Entityを登録したり更新したりする際は、このコンテキストが存在する事を前提に記載します。例えば、以下の通りです。まずはやってみてからとしましょう。


{
   "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": "ローソン八王子長沼町店"
   },
   "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld"
}

メモ帳にこの文字列をコピーして、適当な場所に格納してください。筆者はD:\の直下にpostStore101.jsonldという名前で書きこみました。尚、書き込む時の文字コードはUTF-8です。筆者の場合は初期値がUTF-8でした。
次にPowerShellで以下のコマンドを打ち込みます。


curl -iX POST 'http://localhost:1026/ngsi-ld/v1/entities/' -H 'Content-Type: application/ld+json' -d @d:\postStore101.jsonld

"@d:\postStore101.jsonld"がEntityをjsonld形式で書き込んだファイルの指定です。"@"の後にファイル名をパス付きで記載します。これで、以下の様な応答があれば、格納できたことになります。

PS C:\Users\owner>  curl -iX POST 'http://localhost:1026/ngsi-ld/v1/entities/' -H 'Content-Type: application/ld+json' -d @d:\postStore101.jsonld
HTTP/1.1 201 Created
Date: Wed, 10 Aug 2022 04:15:23 GMT
Location: /ngsi-ld/v1/entities/urn:ngsi-ld:Store:101
Content-Length: 0

PS C:\Users\owner>

既に記載しましたが、Windows側からUbuntu側をアクセスするときは、Localhostと書けば、WSLを経由してUbuntu上のDockerにアクセスしてくれます。Dockerでfiware/orionをrunしたとき、ポート番号1026はコンテナに伝えてくれる指定をしたので、fiware/
orion-ldまで要求が届けられました。