4.4.1. 创建资源模式
如果目标资源类型是数据存储或数据资源,则将POST
视为分别创建顶级资源或子资源的请求。 消息体预计包含在父(目标资源target resource
)内创建的子资源的内容。 消息主体必须包含预期数据资源的一个实例。 子树的数据模型是子树,由YANG
定义为子资源。
数据存储和数据资源的POST
方法必须支持“insert
”(第4.8.5节)和“point
”(第4.8.6节)查询参数。只有当列表或叶子列表是“ordered-by
”时,才允许使用这些参数。
如果POST
方法成功,则返回“201 Created
”状态行,并且没有响应消息主体。标识创建的子资源的“Location
”标题字段必须出现在响应中。
如果数据资源已经存在,则POST
请求必须失败,务必返回“409 Conflict
”状态行。在这种情况下使用错误标记值“resource-denied
”。
如果用户无权创建目标资源,则应返回包含“403 Forbidden
”状态行的错误响应。在这种情况下使用错误标签值“access-denied
”。服务器可以返回“404 Not Found
”状态行,如[RFC7231]的第6.5.4节所述。在这种情况下使用错误标签值“invalid-value
”。所有其他错误响应按照第7节中定义的过程进行处理。
示例:
要创建新的“jukebox
”资源,客户端可能会发送以下内容:
POST /restconf/data HTTP/1.1
Host: example.com
Content-Type: application/yang-data+json
{ "example-jukebox:jukebox" : {} }
如果创建资源,服务器可能会作出如下响应:
HTTP/1.1 201 Created
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Location: https://example.com/restconf/data/example-jukebox:jukebox
Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b3a3e673be2"
有关更多资源创建示例,请参阅附录B.2.1。