这是一个示例资源树。
我需要检索cnt-2和cnt-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的ids放在哪里?
/onem2m/api/v1/~/in-cse?fu=2&crb=20190808T000000&cra=20190806T000000&ty=4
另外,我应该只使用querystring来进行发现,还是使用POST请求是有效的?
发布于 2019-08-07 11:35:21
使用问题中的示例请求,您还将获得cnt-1的所有匹配资源,因为您在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在我看来,第二种方法更“优雅”,因为它使两个资源的(应用)关系更加清晰,但如果您的资源仍然使用标签标记,第一个方法也可能是可行的。
关于POST请求:对于HTTP绑定,查询参数只允许过滤和发现。请看一下TS-0009,第6.2.2.2节查询组件.
顺便说一句,目前在oneM2M中正在进行讨论,以更好地描述检索和发现之间的差异。
https://stackoverflow.com/questions/57389358
复制相似问题