NGSIv1 オートキャスト (NGSIv1 Autocast)¶
デフォルトでは、パーシング技術のために、NGSIv1 属性の作成/更新オペレーションは、JSON が他のネイティブ型 (Number, Boolean など) を使用する場合でも、常に属性を文字列として格納します。さらに、DateTime 型は NGSIv1 ではサポートされていないため、この型の属性はプレーンな文字列として格納されます。これは、これらの属性値に対して高度な機能 (NGSIv2 フィルタリングなど) を使用する場合に問題になります。
NGSIv1 のオートキャスト機能により、このような状況を緩和することができます。これは、-ngsiv1Autocast
CLI オプション で有効になります。有効にすると、Orion Context Broker は NGSIv1 の作成/更新オペレーションで次の属性タイプを解釈します :
- "Number" (および、その別名 "Quantity")
- "DateTime" (および、その別名 "ISO8601")
- "Boolean"
処理は次のとおりです :
- 属性の作成時に、_リクエスト_の属性型が上記のいずれかである場合、属性を格納する前に、対応する型へのキャストが行われます
- 属性値と型の両方 の変更を含む属性の変更時に、_リクエスト_の属性型が上記のいずれかである場合、属性を格納する前に対応する型へのキャストが行われます
- そのような変更のみの属性値を含む属性の変更時 (NGSIv1 では可能性があることに注意)、Orion によって格納された属性タイプが上記のいずれかである場合、属性値を更新する前に対応する型へのキャストが行われます
いくつかの備考 :
{ "value": "Yes", "type": "Number" }
または{ "value": 29, "type": "Boolean" }
などのターゲット型への変換が不可能な場合、属性は文字列として格納されます- これは、NGSiv1 の作成/更新のオペレーションにのみ適用されます。
-ngsiv1Autocast
が使用されているかどうかにかかわらず、NGSIv2 機能は変更されません