4. RESTCONF方法
RESTCONF协议使用HTTP方法来标识为特定资源请求的CRUD操作。
下表显示了RESTCONF操作如何与NETCONF协议操作相关。
| RESTCONF | NETCONF |
|---|---|
| OPTIONS | none |
| HEAD | <get-config>, <get> |
| GET | <get-config>, <get> |
| POST | <edit-config> (nc:operation="create") |
| POST | invoke an RPC operation |
| PUT | <copy-config> (PUT on datastore) |
| PUT | <edit-config> (nc:operation="create/replace") |
| PATCH | <edit-config> (nc:operation depends on PATCH content) |
| DELETE | <edit-config> (nc:operation="delete") |
HTTP DELETE方法不支持NETCONF <edit-config> RPC操作的“remove”编辑操作属性。 资源必须存在,否则DELETE方法将失败。 PATCH方法相当于使用普通补丁时的“merge”编辑操作(参见第4.6.1节)。 其他媒体类型可以提供更细粒度的控制。
访问控制机制用于限制可以使用哪些CRUD操作。 特别是,RESTCONF与NETCONF访问控制模型(NACM)[RFC6536]兼容,因为在RESTCONF和NETCONF操作之间存在特定映射。 资源路径需要由服务器在内部转换为相应的YANG实例标识。 使用此信息,服务器可以将NACM访问控制规则应用于RESTCONF消息。
服务器不得允许客户端无权访问的任何资源进行任何RESTCONF操作。
所有方法的实现(PATCH [RFC5789]除外)在[RFC7231]中定义。 本节定义每种HTTP方法的RESTCONF协议使用情况。