Bar*_*ğlu 5 onem2m onem2m-discovery
这是示例资源树。
我需要一起检索最近48小时的cnt-2和cnt-0数据。我应该对请求添加哪种查询字符串?
/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
Run Code Online (Sandbox Code Playgroud)
我应该在哪里把cnt-0和cnt-2 的id放在querystring中?
/ onem2m / api / v1 /〜/ in-cse?fu = 2&crb = 20190808T000000&cra = 20190806T000000&ty = 4
另外,我应该只使用querystring进行发现还是发出POST请求有效吗?
通过问题中的示例请求,您还将获得cnt-1的所有匹配的 <contentInstance> 资源,因为您是在 IN-CSE 级别上进行发现的。不幸的是,您不能在单个请求中拥有多个目标,但我看到至少有两个可以适合您的用例的解决方案:
/onem2m/api/v1/~/in-cse?fu=2&crb=20190808T000000&cra=20190806T000000&label=myLabel&ty=4/onem2m/api/v1/~/in-cse/aGroup/fopt?fu=2&crb=20190808T000000&cra=20190806T000000&ty=4在我看来,第二种方法是更“优雅”的方法,因为它使两个 <container> 资源的(应用程序)关系更加清晰,但如果您的 <contentInstance> 资源无论如何都使用标签进行标记,第一种方法也可能是可行的。
关于 POST 请求:对于 HTTP 绑定,查询参数仅允许用于过滤和发现。请查看 TS-0009,第6.2.2.2 节“查询组件”.
顺便说一句,oneM2M 目前正在进行讨论,以更好地描述检索和发现之间的差异。