我很清楚如何引用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的“插入”和“点”占用了资源uri。但是,用来标识叶列表项的资源uri是什么?如果我想引用第二个条目,下面的内容有效吗?
/y/z=b发布于 2016-04-08 09:07:30
每个叶列表条目是restconf-草案-10中的一个单独的数据资源。
容器、叶子列表条目、列表条目、anydata和anyxml节点都是数据资源。
这就是第3.5款对leaf-list条目的看法。此外,它在5.3.1中定义了leaf-list数据资源标识符的编码:
如果路径表达式中的数据节点是杨叶列表节点,那么必须按照以下规则对叶列表值进行编码:o叶列表的实例标识符必须使用一个路径段RFC3986进行编码。O路径段是通过具有叶列表名称,后面跟着"=“字符,然后是叶列表值来构造的。(例如,/restconf/data/top-传单列表=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
}
}https://stackoverflow.com/questions/36482884
复制相似问题