OneM2M 中条件检索的 QueryString 结构?

QueryString Structure of a Conditial Retrieve in OneM2M?

这是一个示例资源树。

我需要一起检索 cnt-2cnt-0 最近 48 小时的数据。我应该在请求中放入什么样的查询字符串?

/in-cse
   /in-cse/ae-123
      /in-cse/cnt-2
         /in-cse/cin-21
         /in-cse/cin-22
         /in-cse/cin-23
   /in-cse/ae-124
      /in-cse/cnt-0
         /in-cse/cin-01
         /in-cse/cin-02
         /in-cse/cin-03
      /in-cse/cnt-1
         /in-cse/cin-11
         /in-cse/cin-22
         /in-cse/cin-33

我应该把 cnt-0 和 cnt-2 的 id 放在查询字符串的什么地方?

/onem2m/api/v1/~/in-cse?fu=2&crb=20190808T000000&cra=20190806T000000&ty=4

另外,我应该只使用查询字符串进行发现还是发出 POST 请求是否有效?

通过您问题中的示例请求,您还将获得 cnt-1 的所有匹配 资源,因为您是在 IN- CSE。不幸的是,您不能在单个请求中有多个目标,但我看到至少有两种解决方案适用于您的用例:

  • 您可以为两个 资源添加标签,并将标签添加到您的搜索中。
    /onem2m/api/v1/~/in-cse?fu=2&crb=20190808T000000&cra=20190806T000000&label=myLabel&ty=4
  • 您可以添加一个 ,其中包含对您的用例很重要的 资源(即 cnt-0cnt- 2) 并使 的 fanoutPoint 成为您的发现请求的目标。然后 CSE 负责将发现重定向到 的每个成员。
    /onem2m/api/v1/~/in-cse/aGroup/fopt?fu=2&crb=20190808T000000&cra=20190806T000000&ty=4

在我看来,第二种方法更"elegant"一种,因为它使两个 资源的(应用)关系更加清晰,但如果您的 ,第一种方法也可能是可行的无论如何,资源都使用标签进行标记。

关于 POST 请求:对于 HTTP 绑定查询参数只允许用于过滤和发现。请查看 TS-0009,部分 6.2.2.2 查询组件

顺便说一句,目前在 oneM2M 中正在进行讨论,以更好地描述检索和发现之间的差异。