3.6.2. 编码操作资源输出参数

如果“rpc”或“action”语句具有“output”部分,那么这些输出参数的实例将在定义了“rpc”或“action”语句的模块名称空间中编码到一个XML元素或名为JSON的对象中的“output”,它位于定义了“rpc”或“action”语句的模块名称空间中。

如果调用RPC操作没有错误,并且如果“rpc”或“action”语句具有“output”部分并且“output”对象树包含被认为是强制性节点的任何子数据节点,则响应消息体务必在响应中由服务器发送。

如果调用RPC操作没有错误,并且“rpc”或“action”语句具有“output”部分,并且“output”对象树不包含被视为强制节点的任何子节点,则响应消息体可以由服务器在响应中发送。

请求URI不会在响应中返回。可能需要了解请求URI,以将输出与请求中使用的特定“rpc”或“action”语句相关联。

例子:

RPC输出示例:

本例使用3.6.1节定义的“example-ops”的YANG模块。

客户端可能会发送以下POST请求消息来调用“get-reboot-info”操作:

  1. POST /restconf/operations/example-ops:get-reboot-info HTTP/1.1
  2. Host: example.com
  3. Accept: application/yang-data+json

服务器可能会如下回应:

  1. HTTP/1.1 200 OK
  2. Date: Thu, 26 Jan 2017 20:56:30 GMT
  3. Server: example-server
  4. Content-Type: application/yang-data+json
  5. {
  6. "example-ops:output" : {
  7. "reboot-time" : 30,
  8. "message" : "Going down for system maintenance",
  9. "language" : "en-US"
  10. }
  11. }

这里使用XML编码显示相同的响应:

  1. HTTP/1.1 200 OK
  2. Date: Thu, 26 Jan 2017 20:56:30 GMT
  3. Server: example-server
  4. Content-Type: application/yang-data+xml
  5. <output xmlns="https://example.com/ns/example-ops">
  6. <reboot-time>30</reboot-time>
  7. <message>Going down for system maintenance</message>
  8. <language>en-US</language>
  9. </output>

操作输出示例:

本例使用3.6.1节定义的“example-actions”的YANG模块。

客户端可能会发送以下POST请求消息来调用“get-last-reset-time”操作:

  1. POST /restconf/data/example-actions:interfaces/interface=eth0/get-last-reset-time HTTP/1.1
  2. Host: example.com
  3. Accept: application/yang-data+json

服务器可能会如下回应:

  1. HTTP/1.1 200 OK
  2. Date: Thu, 26 Jan 2017 20:56:30 GMT
  3. Server: example-server
  4. Content-Type: application/yang-data+json
  5. {
  6. "example-actions:output" : {
  7. "last-reset" : "2015-10-10T02:14:11Z"
  8. }
  9. }