Доступ к отдельному листу в листе в списке ян - PullRequest
0 голосов
/ 14 октября 2018

Я хочу получить доступ к значению листа списка в модуле ян?Например,

       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 голосов
/ 15 октября 2018

Это объясняется в RFC8040, раздел 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" определен в модуле YANG "example-top",и URI целевого ресурса для листа "X" будет кодироваться следующим образом:

  /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».

Пример URL:

 /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 - это ключ записи экземпляра списка, которую вы хотите запросить.

...