3.6.3. 编码操作资源错误
如果在尝试调用操作或操作时发生任何错误,则会返回“errors
”媒体类型和相应的错误状态。
如果(1)RPC
操作输入无效或(2)RPC
操作被调用,但发生错误,那么服务器必须发送一个包含“errors
”资源的消息体,正如3.9节定义的那样。
使用第3.6.1节中示例中的“reboot
”的RPC
操作,客户端可能会发送以下POST
请求消息:
POST /restconf/operations/example-ops:reboot HTTP/1.1
Host: example.com
Content-Type: application/yang-data+xml
<input xmlns="https://example.com/ns/example-ops">
<delay>-33</delay>
<message>Going down for system maintenance</message>
<language>en-US</language>
</input>
服务器可能会回应一个“invalid-value
”错误:
HTTP/1.1 400 Bad Request
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Content-Type: application/yang-data+xml
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>protocol</error-type>
<error-tag>invalid-value</error-tag>
<error-path xmlns:ops="https://example.com/ns/example-ops">
/ops:input/ops:delay
</error-path>
<error-message>Invalid input parameter</error-message>
</error>
</errors>
这里使用JSON
编码显示相同的响应:
HTTP/1.1 400 Bad Request
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Content-Type: application/yang-data+json
{ "ietf-restconf:errors" : {
"error" : [
{
"error-type" : "protocol",
"error-tag" : "invalid-value",
"error-path" : "/example-ops:input/delay",
"error-message" : "Invalid input parameter"
}
]
}
}