1. チャンク

チャンク

サーバーの応答時間を改善するため、チャンクを使用して応答のサイズが縮小されています。 チャンクのサイズはサーバーによって事前定義されており、25 に設定されています。 このようにすることで、クライアントが意図せずにリソースを浪費することがなくなります。

コレクション リソースの応答の本文には、コレクション オブジェクトが含まれています。 取得するアイテムがほかにもある場合、そのコレクションは、コレクション内の次のチャンクへのリンクを含むプロパティを持ちます。 このプロパティは、next という名前です。 また、previous という名前のプロパティもあり、最初のチャンクでない場合は、コレクション内の前のチャンクへのリンクが含まれます。 クライアントがこのような URL を作成することはお勧めしません。代わりに、必要なナビゲーション リンクを提供するリソースに依存する必要があります。

チャンク化されたコレクションの応答例を次に示します。

{
    "items": [ ... ],
    "total_items": 36,
    "returned_items": 25,
    "next": {
        "href": "/entitydefinitions/M.Asset/entities?skip=25",
        "title": "The next page in this collection"
    },
    "self": {
        "href": "/entitydefinitions/M.Asset/entities",
        "title": "This collection"
    }
}

上記の例に示されているように、チャンクがリストの先頭にある場合、previous プロパティは存在しません。 同様に、コレクションの最後にある場合は、next プロパティが存在しません。

次の擬似コードは、クライアントが完全なコレクションを取得する方法を示しています。

var list = []
var url = '/resource'
do while (url != null) {
    var resource = fetch(url)
    list.append(resource.items)
    url = resource.next 
}

この自動チャンクは、ListResource 型を返すリソースにのみ該当します。これは /search リソースを除外します。

チャンク サイズと開始するアイテムをカスタマイズする必要がある場合は、「範囲設定」セクションで説明されている skip パラメーターおよび take パラメーターが必要になります。

この記事を改善するための提案がある場合は、 お知らせください!