コンテキスト情報の管理¶
このセクションでは、Orion Context Brokerを実行するために必要なステップといくつかの操作例について詳しく説明します。 Orion Context Brokerの詳細については、コンテキスト・アウェア型アプリケーションの開発セクションまたはオフィシャル・マニュアルを参照してください。
Orionインスタンスを実行するには、次のコマンドを実行します。
docker-compose up orion
または、Tour Guide Applicationのコマンドラインインターフェイス(CLI)を使用して:
./tour-guide start orion
レストラン、レビュー、予約に関する情報は既に読み込まれています。
Context Brokerへのリクエストを実行するには、そのホスト名を知る必要があります。 ./tour-guide configure hosts
を実行して、Tour Guide Applicationに用意されているCLIを使用して、システムのhostsファイルを変更できます。configure hostsコマンドを実行した後、IPアドレスの代わりにorion
を使用してContext Brokerへのリクエストを実行できます。
次のHTTPリクエストを発行することで、Orionが実行されており、hostsファイルが正しく設定されていることを確認できます:
GET orion:1026/version
そして、次のようなJSONのレスポンスが返ってきます:
{
"orion" : {
"version" : "1.3.0",
"uptime" : "0 d, 0 h, 2 m, 42 s",
"git_hash" : "cb6813f044607bc01895296223a27e4466ab0913",
"compile_time" : "Fri Sep 2 08:36:02 UTC 2016",
"compiled_by" : "root",
"compiled_in" : "ba19f7d3be65"
}
}
新しいレストランを作成する場合は、ペイロード・ボディでレストラン情報をリクエストし、HTTPヘッダーでFiware-ServicePath
を使用してフランチャイズを指定することができます。
たとえば、Franchise1
に属するレストランを作成するには、次のHTTPリクエストを実行します:
POST orion:1026/v2/entities/
Headers:
{
'Content-Type': 'application/json',
'Fiware-Service': 'tourguide'
'Fiware-ServicePath': '/Franchise1'
}
{
"id": "sample-id",
"type": "Restaurant",
"address": {
"type": "PostalAddress",
"value": {
"streetAddress": "Cuesta de las Cabras Aldapa 2",
"addressRegion": "Araba",
"addressLocality": "Alegr鱈a-Dulantzi",
"postalCode": "01240"
}
},
"aggregateRating": {
"type": "AggregateRating",
"value": {
"ratingValue": 3,
"reviewCount": 98
}
},
"capacity": {
"type": "PropertyValue",
"value": 100
},
"department": {
"type": "Text",
"value": "Franchise1"
},
"description": {
"type": "Text",
"value": "Sample description"
},
"location": {
"type": "geo:point",
"value": "42.8404625, -2.5123277"
},
"name": {
"type": "Text",
"value": "Sample-restaurant"
},
"occupancyLevels": {
"type": "PropertyValue",
"value": 0,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2016-09-19T06:32:15.901Z"
}
}
},
"priceRange": {
"type": "Number",
"value": 0
},
"telephone": {
"type": "Text",
"value": "945 400 868"
}
}
その後、そのidを使用して作成したばかりのレストラン・データを取得できます。 keyValues
オプションは、属性名と値だけを含む、よりコンパクトで簡単な表現を得るために使用されます:
GET orion:1026/v2/entities/sample-id?options=keyValues
Headers:
{
'Content-Type': 'application/json',
'Fiware-Service': 'tourguide',
'Fiware-ServicePath': '/Franchise1'
}
次のようなものが表示されます:
{
"id": "sample-id",
"type": "Restaurant",
"address": {
"streetAddress": "Cuesta de las Cabras Aldapa 2",
"addressRegion": "Araba",
"addressLocality": "Alegria-Dulantzi",
"postalCode": "01240"
},
"aggregateRating": {
"ratingValue": 3,
"reviewCount": 98
},
"capacity": 100,
"department": "Franchise1",
"description": "Sample description",
"location": "42.8404625, -2.5123277",
"name": "Sample-restaurant",
"occupancyLevels": 0,
"priceRange": 0,
"telephone": "945 400 868"
}
レストランを改装して、キャパシティや説明の値の変更等、データを更新する必要がある場合、次のHTTPリクエストを使用できます:
PATCH orion:1026/v2/entities/sample-id/attrs?options=keyValues
Headers
{
'Content-Type': 'application/json',
'Fiware-Service': 'tourguide'
'Fiware-ServicePath': '/Franchise1'
}
{
"description" : "New sample description",
"capacity": 150
}
次のようにアトリビュートを取得することで、値を更新したことを確認できます:
GET orion:1026/v2/entities/sample-id/attrs?attrs=description,capacity&options=keyValues
Headers
{
'Content-Type': 'application/json',
'Fiware-Service': 'tourguide',
'Fiware-ServicePath': '/Franchise1'
}
次のようなものが表示されます:
{
"description": "New sample description",
"capacity": 150
}