4.6.1. Plain Patch
普通的补丁机制将消息体的内容与目标资源进行合并。 普通补丁的消息体必须存在,并且必须由媒体类型“application/yang-data+xml
”或“application/yang-data+json
”表示。
普通补丁可用于创建或更新目标资源中的子资源,但不能删除它们。 请参阅[YANG-Patch]了解支持删除子资源的备用媒体类型。 YANG Patch
媒体类型允许在单个PATCH
方法中的多个子操作(例如,“merge
”,“delete
”)。
如果目标资源表示一个YANG
叶子列表,那么PATCH
方法不能改变叶子列表实例的值。
如果目标资源表示一个YANG
列表实例,那么消息体表示中的关键叶子值必须与请求URI
中的关键叶子值相同。 PATCH
方法不能用来改变数据资源实例的键叶值。
在服务器处理普通补丁之后,响应将返回给客户端,如4.6节所述。
例:
若要替换“album
”资源中的“year
”字段(而不是使用PUT
方法替换整个资源),客户端可能会发送一个普通的修补程序,如下所示:
PATCH /restconf/data/example-jukebox:jukebox/\
library/artist=Foo%20Fighters/album=Wasting%20Light HTTP/1.1
Host: example.com
If-Match: "b8389233a4c"
Content-Type: application/yang-data+xml
<album xmlns="http://example.com/ns/example-jukebox">
<year>2011</year>
</album>
如果该字段已更新,则服务器可能会做出如下响应:
HTTP/1.1 204 No Content
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b2788923da4c"