通知消息的一部分
一条通知消息是当对订阅主题的开关资源进行更改时,发送给订户的消息。通知消息以JSON格式。
通知消息的内容取决于发生的更改类型。
通知消息示例
对于以下示例,假设使用以下订阅消息:
{“主题”:[{“ name”:“/rest/v1/system/vlans?depth = 1&attributes = name“}],“ type”:“ subscribe”}
当任何VLAN的名称更改时,订户会收到通知:
在下面的示例中,VLAN7已添加到交换机配置中:
{“ data”:[{“ resources”:[{“ operation”:“插入”,“ uri”:“/rest/v1/system/vlans/vlan7“,“ values”:{“ name”:“ vlan7”}}],“ topicname”:v1/system/vlans?depth = 1&attributes = name“}],“ type”:“ notification”}
在下面的示例中,VLAN7已从配置中删除:
{“ data”:[{“ resources”:[{“ operation”:“删除”,“ uri”:“/rest/v1/system/vlans/vlan7“,“ values”:{}}],“ toporname”:v1/system/vlans?depth = 1&attributes = name“}],“ type”:“ notification”}
在下面的示例中,订户已订阅以下主题:
/休息/v1/system/interfaces/1%2f1%2F2?属性= name,admin_state
如果界面的名称或管理状态1/1/2
更改,发送通知消息。如果属性除了名称或管理状态更改以外,则不会发送通知消息。
在下面的示例中,接口的管理状态更改为向上
。
{“ data”:[{“资源”:[{“操作”:“修改”,“ uri”:“/rest/v1/system/interfaces/1%2f1%2f2“,“ values”:{“ admin_state”:“ up”}}],“ topicname”:v1/system/interfaces/1%2f1%2f2?属性= name,admin_state“}],“ type”:“ Notification”}
通知消息的组件
-
类型
-
标识消息的类型。通知消息具有类型:
通知
-
数据
-
包含一个以JSON格式的一个或多个主题的逗号分隔列表。
主题的组成部分
在通知消息中,数据中的每个主题包含以下组件:
-
主题名
-
包含由开关资源的URI标识的主题的名称,包括可选查询字符串。
-
资源
-
包含以JSON格式的一个或多个资源的逗号分隔列表。当主题的URI是资源收集时,主题包括多个资源。
每个资源包括以下组件:
-
手术
-
对于通知消息,操作是以下值之一:
-
插入
-
将资源或资源属性添加到交换机的配置中。
-
删除
-
从交换机中删除了资源或资源属性。
-
修改的
-
更改了资源或资源属性。
-
-
Uri
-
在资源集合中包含资源实例的URI。如果是
主题名
是资源实例,而不是集合,Uri
匹配URI的路径部分主题名
。 -
值
-
内容的内容
值
取决于操作:当。。。的时候
手术
值是删除
,,,,值
是空的。当。。。的时候
手术
值是插入
,,,,值
包含在查询部分中指定的属性的当前名称和值主题名
。如果未包含查询字符串主题名
,包括该资源的所有属性和值。当。。。的时候
手术
值是修改的
,,,,值
在更改值的查询字符串中包含属性的名称和当前值:如果未包含查询字符串
主题名
,包括该资源的所有属性和值。如果一个主题的查询字符串中包含多个属性,并且只有某些属性值更改,则仅包含更改的属性。
如果查询字符串更改中未包含的属性,则不会发送通知消息,因为该属性不是订阅的一部分。
-