1

我很清楚如何引用一个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在第三个位置插入 a ?

Restconf 具有获取资源 uri 的“插入”和“点”。但是,识别叶列表项的资源 uri 是什么?如果我想参考第二个条目,以下是否有效?

/y/z=b
4

1 回答 1

1

每个叶子列表条目都是 restconf-draft-10 中的一个单独的数据资源。

容器、叶子、叶子列表条目、列表条目、anydata 和 anyxml 节点是数据资源。

这就是第 3.5节关于leaf-list条目的内容。leaf-list此外,它在 5.3.1 中定义了数据资源标识符的编码:

如果路径表达式中的数据节点是 YANG 叶列表节点,则叶列表值必须根据以下规则进行编码:

o 叶列表的实例标识符必须使用一个路径段 [RFC3986] 进行编码。

o 路径段由叶列表名称、“=”字符和叶列表值构成。(例如,/restconf/data/top-leaflist=fred)。

因此,您的第二个条目示例将是:/restconf/data/x:y/z=b.

至于插入,似乎还不清楚。在草案的附录 D 中有两个point和的示例insert,但使用 alist代替 a leaf-list(请注意,两者都必须是ordered-by user为了使两个参数在请求中有效)。

D.3.5。“点”参数

  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
    }
  }
于 2016-04-08T09:07:30.337 回答