在杨列表中访问叶子中的单个叶子

时间:2018-10-14 11:33:38

标签: rest opendaylight ietf-netmod-yang ietf-restconf

我想访问yang模块中列表叶的值? 例如

       module abc
       {
       list xyz{
       key a;
       leaf a{
           type int
       },
       leaf b{
           type string
       },
       leaf c{
           type string
       },
       leaf d{
           type string
       }
       }
       } 

REST应该类似于“ abc / xyz /(这是密钥)”,即(abc / xyz / 1)

它将给出a,b,c,d的所有值。

但是如果我要访问单个元素b,c,d,这不是关键。 我们如何编写REST API?

1 个答案:

答案 0 :(得分:0)

这在RFC8040, Section 3.5.3中有解释。这是本节中的示例:

  

示例:

 container top {
      list list1 {
          key "key1 key2 key3";
           ...
           list list2 {
               key "key4 key5";
               ...
               leaf X { type string; }
           }
       }
       leaf-list Y {
         type uint32;
       }
   }
     

对于上述YANG定义,容器“ top”在      “ example-top” YANG模块,以及叶“ X”的目标资源URI      将被编码如下:

  /restconf/data/example-top:top/list1=key1,key2,key3/\
      list2=key4,key5/X
     

对于上述YANG定义,目标资源URI用于      叶列表“ Y”的编码如下:

  /restconf/data/example-top:top/Y=instance-value
     

以下示例显示保留字符的方式      键值中的百分比编码。 “ key1”的值包含      逗号,单引号,双引号,冒号,双引号,空格,      和正斜杠(,'“:” /)。请注意,双引号不是      保留字符,不需要进行百分比编码。的      “ key2”的值是空字符串,而“ key3”的值是      字符串“ foo”。

     

示例网址:

 /restconf/data/example-top:top/list1=%2C%27"%3A"%20%2F,,foo

因此,在您的示例上下文中,您将执行/restconf/data/abc:xyz=my-key/b/restconf/data/abc:xyz=my-key/c/restconf/data/abc:xyz=my-key/d,其中 my-key 是您要查询的列表实例条目的键。