Доступ к отдельному листу в листе в списке ян

Я хочу получить доступ к значению листа списка в модуле Ян? бывший

       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 ответ

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

Другие вопросы по тегам