1.3. 数据模型驱动的API
RESTCONF
将HTTP
的简单性与模式驱动的API
的可预测性和自动化潜力相结合。了解服务器使用的YANG
模块,客户端可以获得所有的管理资源URL
以及所有RESTCONF
请求和响应的正确结构。这种策略避免了由服务器提供的响应,以便包含超媒体作为Roy Fielding
的博士论文[REST-Dissertation]中描述的应用状态引擎(HATEOAS
)链接,原因在于客户端可以确定它需要的来自YANG
模块。
RESTCONF
利用YANG
库[RFC7895]允许客户端发现服务器的YANG
模块一致性信息,以防客户端使用它。
服务器可以选择性的支持YANG
库中的YANG
模块的检索。详情请参阅第3.7节。
根据YANG
模块定义,特定于数据模型的RPC
操作和数据存储区内容的URI
是可预测的。
RESTCONF
协议在用YANG
数据建模语言定义的概念数据存储上运行。服务器使用[RFC7895]中定义的“ietf-yang-library
”YANG
模块列出其支持的每个YANG模块。服务器必须在“modules-state/module
”列表中实现“ietf-yang-library
”模块,它必须标识服务器使用的所有的YANG
模块。概念数据存储内容,特定于数据模型的RPC
操作和事件通知由这组YANG
模块标识。
将数据分类为配置数据或非配置数据是从YANG
的“config
”语句派生的。与数据排序有关的行为是从YANG
的“ordered-by
”语句中导出的。非配置数据也被称为“状态数据”。
RESTCONF
数据存储编辑模型简单而直接,类似于NETCONF
中的可写可运行(:writable-running
)能力的行为。数据存储区资源内的数据资源的每个RESTCONF
编辑在成功完成编辑后被激活。