我有OData源,它实现$top
和https://example.com/EntitySet?$top=30&$skip=220
参数。
有多个实体返回。说,我只有250个实体。然后我尝试像这样进行分页:
eval(get_file_contents())
如果我的跳过超出了总实体的数量,我最终会因服务而暂停。
是否有参数或数据,这会告诉我没有更多的项目?是否可以/应该在OData端实现某些内容,而是返回而不是超时?
答案 0 :(得分:3)
对于OData 2.0和OData 3.0协议:
您应该使用:$inlinecount=allpages
http://services.odata.org/OData/OData.svc/Products$inlinecount=allpages&$top=5&$format=json
标识前5个产品条目和 包括产品条目总数的计数。
对于OData 4.0,您可以阅读响应中嵌入的 nextLink 注释。 (参见示例here)
4.5.5注释odata.nextLink odata.nextLink注释表明响应只是所请求集合的一个子集 实体或实体参考集合。它包含一个URL 允许检索所请求集合的下一个子集。
答案 1 :(得分:0)
如果您向您的uri添加&$count=true
,该服务将在响应中包含总计数。 json响应将包含"@odata.count"
属性。此属性表示实体总数。
这样你就可以检查你是否收到了所有实体。