通知消息的一部分

一条通知消息是当对订阅主题的开关资源进行更改时,发送给订户的消息。通知消息以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的路径部分主题名

内容的内容取决于操作:

  • 当。。。的时候手术值是删除,,,,是空的。

  • 当。。。的时候手术值是插入,,,,包含在查询部分中指定的属性的当前名称和值主题名。如果未包含查询字符串主题名,包括该资源的所有属性和值。

  • 当。。。的时候手术值是修改的,,,,在更改值的查询字符串中包含属性的名称和当前值:

    • 如果未包含查询字符串主题名,包括该资源的所有属性和值。

    • 如果一个主题的查询字符串中包含多个属性,并且只有某些属性值更改,则仅包含更改的属性。

    • 如果查询字符串更改中未包含的属性,则不会发送通知消息,因为该属性不是订阅的一部分。