首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RESTCONF中获取所有列表实例合法吗?

在RESTCONF中获取所有列表实例合法吗?
EN

Stack Overflow用户
提问于 2019-05-14 07:17:49
回答 1查看 706关注 0票数 1

给出以下杨定义,在模块test

代码语言:javascript
复制
list machine {
    key "name";
        leaf "name" {
        type string;
    }
}

在数据树中:

代码语言:javascript
复制
"machine" : [
    { "name": "a" },
    { "name": "b" },
    { "name": "c" }
]

我想知道以下请求是否符合RESTCONF?

代码语言:javascript
复制
GET /restconf/data/test/machine

预期此请求将返回所有list实例。

我有这个问题,因为我对RESTCONF的单词没有一个清晰的理解。在RESTCONF 3.5.3中,

如果路径表达式中的数据节点是杨列表节点,则必须根据以下规则对列表的键值(,如果有)进行编码:o表示杨列表的数据资源的键叶值必须使用一个路径段RFC3986进行编码。如果只有一个键叶值,则路径段的构造方法是使用列表名称,后面跟着"=“字符,然后是单键叶值。

(if any)是指以下两种含义中的哪一种?( key语句对于非配置list来说不是必需的。所以有keyed listsnon-keyed lists

  1. 用户可以为键列表指定键值。(if any)是关于“如果指定了键值”。如果它们指定了键值,则键值必须遵循有关键值的规则。如果它们没有指定,那么您就不必遵守有关键值的规则。以我的YANG定义为例,这两个请求都是正确的: 获取/restconf/data/test/machine // GET所有列表实例-- get /restconf/data/test/machine=a / GET键为"a“的列表实例
  2. 用户必须为键列表指定键值。(if any)是关于“如果列表是键还是不键的”。根据这一理解,将有: 获取/restconf/data/test/machine //错误请求,不能获得所有列表实例--获取/restconf/data/test/machine=a // ok,获取按"a“键的列表实例

第二种理解来自于同一节中关于叶表的类似词:

如果路径表达式中的数据节点是杨叶列表节点,那么必须按照以下规则对叶列表值进行编码:o叶列表的标识符必须使用一个路径段RFC3986进行编码。O路径段的构造方法是使用叶列表名称,后面跟着"=“字符,然后是叶列表值(例如,/restconf/data/top传单列表=fred)。

叶列表的单词没有(if any),所以您不能使用像/restconf/data/top-leaflist这样的URL。您必须使用=fred来指定叶列表实例。那么,如果叶列表实例不能作为一个整体来检索,那么为什么列表实例可以作为一个整体来检索(在理解1中)?叶列表实例和列表实例都是数据资源,它们在概念上是等价的.

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 07:19:40

正确的解释是1。“如果有的话”指的是关键值,而不是杨键语句。RESTCONF可以获取一个列表的多个实例,但只能在JSON编码中进行(格式良好的XML不允许多个根元素)。这也是检索无键非配置(状态)列表实例的唯一方法。

如果只允许通过GET获取单个列表条目,则其相应的RFC部分将明确声明这一点,必须这样做--如果您查看4.7,p3节中删除的措辞,则存在这样的文本,但GET没有等效的内容。

还可以检索多个叶列表实例。这可能是检索某些此类实例的唯一方法,因为(在YANG 1.1中)非配置叶列表允许重复值。缺少的“如果有的话”很可能是编辑上的遗漏。

请注意,3.5.3中的文本只解释了URI是如何形成的,并没有说明RESTCONF操作是如何利用这些URI的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56124918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档