使用yang restconf访问特定的叶列表条目

时间:2016-04-07 17:09:01

标签: ietf-netmod-yang ietf-restconf

我很清楚如何引用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

1 个答案:

答案 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中有pointinsert两个例子,但是使用list代替leaf-list(注意两者都必须是ordered-by user为了使两个参数在请求中有效。)

D.3.5. "point" Parameter

  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
    }
  }