我很清楚如何引用list
项(restconf草案),但不清楚如何引用特定的leaf-list entry
。
例如,给出以下定义:
module x {
container y {
leaf-list z;
}
}
and if I have the following data in the system
<y>
<z>a</z>
<z>b</z>
<z>d</z>
</y>
如何在第三个位置插入c
?
Restconf有&#39;插入&#39;和&#39;指向&#39;需要资源uri。 但是,用于识别叶子列表项的资源是什么? 如果我想参考第二个条目,以下是否有效?
/y/z=b
答案 0 :(得分:1)
每个叶子表条目都是restconf-draft-10中的一个单独的数据资源。
集装箱, leafs,leaf-list条目,list条目,anydata和anyxml节点 数据资源。
这是Section 3.5关于leaf-list
条目的说法。此外,它定义了5.3.1中的leaf-list
数据资源标识符的编码:
如果路径表达式中的数据节点是YANG叶列表节点,那么 叶子列表值必须根据以下规则进行编码:
o叶子列表的实例标识符必须使用编码 一个路径段[RFC3986]。
o通过使用叶名列表构造路径段, 然后是&#34; =&#34;字符,后跟叶名列表值。 (例如,/ restconf / data / top-leaflist = fred)。
所以,第二次输入的例子是:/restconf/data/x:y/z=b
。
至于插入,似乎不清楚。草稿的附录D中有point
和insert
两个例子,但是使用list
代替leaf-list
(注意两者都必须是ordered-by user
为了使两个参数在请求中有效。)
POST /restconf/data/example-jukebox:jukebox/
library/artist=Foo%20Fighters/album=Wasting%20Light?
insert=after&point=%2Fexample-jukebox%3Ajukebox%2F
library%2Fartist%3DFoo%20Fighters%2Falbum%3D
Wasting%20Light%2Fsong%3DBridge%20Burning HTTP/1.1
Host: example.com
Content-Type: application/yang.data+json
{
"example-jukebox:song" : {
"name" : "Rope",
"location" : "/media/foo/a7/rope.mp3",
"format" : "MP3",
"length" : 259
}
}