2016-11-16 20 views
1

私は$skip$topパラメータを実装するODataソースを持っています。 x個のエンティティが返されます。言う、私はわずか250の実体しか持っていない。そして、私はこのようなページングをしようとします:ODataのページングとスキップトップ - データがないことを知る方法?

https://example.com/EntitySet?$top=30&$skip=220 

私のスキップが総エンティティの数を超えた場合、私は最終的にサービスからタイムアウトを取得します。

これ以上の項目がないことを通知するパラメータまたはデータはありますか? OData側に実装できる/実装する必要のあるものはありますか?タイムアウトの代わりに返されますか?

答えて

2

$inlinecount=allpages

http://services.odata.org/OData/OData.svc/Products$inlinecount=allpages&$top=5&$format=json

は、最初の5つの製品のエントリを識別し、 は製品のエントリの合計数のカウントが含まれています。

のOData 4.0のために、あなたは応答に埋め込まnextLink注釈を読むことができます。

4.5.5注釈odata.nextLink odata.nextLink注釈は、応答がエンティティまたはエンティティ参照の要求されたコレクションのコレクション のサブセットのみであることを示している(例えばhereを参照)。これには、 が要求されたコレクションの次のサブセットを取得できるURLが含まれています。

0

あなたがあなたのuriに&$count=trueを追加すると、サービスは応答に総数を含みます。 jsonの応答には"@odata.count"プロパティが含まれます。このプロパティは、エンティティの総数を示します。

あなたはすべてのエンティティを受け取ったかどうかを確認できます。 あなたが使用する必要があります:ODataの2.0とのOData 3.0プロトコルについては

関連する問題