【问题标题】:accessing a specific leaf-list entry using yang restconf使用 yang restconf 访问特定的叶列表条目
【发布时间】:2016-07-28 17:31:56
【问题描述】:

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

【问题讨论】:

    标签: ietf-netmod-yang ietf-restconf


    【解决方案1】:

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

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

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

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

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

    o 路径段由叶列表名称构成, 后跟一个“=”字符,然后是叶列表值。 (例如,/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
        }
      }
    

    【讨论】:

    • 我如何同时访问 z.a 和 z.b,我尝试使用逗号,但它抛出错误为“不支持的 uri 格式 - 值的数量与键的数量不同”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2015-03-16
    • 2014-12-29
    • 1970-01-01
    相关资源
    最近更新 更多