5

これはリソース ツリーの例です。

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を querystring のどこに置くべきですか?

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

また、検出を行うためにクエリ文字列のみを使用する必要がありますか、または POST 要求を行うことは有効ですか?

4

1 に答える 1

2

質問のリクエスト例では、IN-CSE のレベルで検出を行うため、cnt-1の一致するすべての <contentInstance> リソースも取得します。残念ながら、1 回のリクエストで複数のターゲットを指定することはできませんが、ユース ケースに適したソリューションが少なくとも 2 つあります。

  • 2 つの <contentInstance> リソースにラベルを追加し、検索にラベルを追加できます。
    /onem2m/api/v1/~/in-cse?fu=2&crb=20190808T000000&cra=20190806T000000&label=myLabel&ty=4
  • ユースケースにとって重要な <container> リソース (つまり、 cnt-0cnt-2 ) を含む <group> を追加し、 <group> の fanoutPoint を検出リクエストのターゲットにすることができます。次に、CSE は、発見を <group> の各メンバーにリダイレクトする責任があります。
    /onem2m/api/v1/~/in-cse/aGroup/fopt?fu=2&crb=20190808T000000&cra=20190806T000000&ty=4

私の意見では、2 番目の方法は 2 つの <container> リソースの (アプリケーション) 関係をより明確にするため、より「エレガント」な方法ですが、 <contentInstance> リソースがとにかくラベルを使用してタグ付けされている場合は、最初の方法も実行可能かもしれません。

POST リクエストについて: HTTP バインディングの場合、クエリ パラメータはフィルタリングと検出にのみ許可されます。TS-0009 のセクション6.2.2.2 クエリ コンポーネントをご覧ください。

ところで、現在 oneM2M では、検索と発見の違いをもう少しよく説明するための議論が進行中です。

于 2019-08-07T11:35:21.570 に答える