Tha thứ cho tôi, tôi rất mới sử dụng REST.
Hiện tôi đang sử dụng SP2013 Odata (_api/web/lists/getbytitle('<list_name>')/items?)
để nhận nội dung của danh sách. Danh sách có 199 mục trong đó vì vậy tôi cần phải gọi nó hai lần và mỗi lần yêu cầu một tập hợp các mục khác nhau. Tôi cho rằng tôi có thể thực hiện điều này bằng cách gọi:
_api/web/lists/getbytitle('<list_name>')/items?$skip=100&$top=100
mỗi lần thay đổi nhiều lần tôi cần bỏ qua. Vấn đề là điều này chỉ bao giờ trả về 100 vật phẩm đầu tiên. Có điều gì tôi đang làm sai hay là $skip
bị hỏng trong dịch vụ OData?
Có cách nào tốt hơn để lặp qua các cuộc gọi REST, giả sử cách này không hoạt động hay không thực tế?
Tôi đang sử dụng giao thức JSON với Accept
header bằng application/json;odata=verbose
Tôi cho rằng $top=100
là không thực sự cần thiết
Edit: Tôi đã nhìn nó ngày càng, tôi 'không hoàn toàn chắc chắn về các điều khoản ở đây, nhưng việc sử dụng $skip
hoạt động tốt nếu bạn đang sử dụng phương pháp được giới thiệu với SharePoint 2010, tức là, _vti_bin/ListData.svc/<list_name>?$skip=100
Trên thực tế, đủ hài hước, cách cũ không đặt giới hạn 100 mục trên lợi nhuận. Vì vậy, bỏ qua thậm chí không cần thiết. Tuy nhiên, nếu bạn muốn chỉ trả lại một đoạn dữ liệu nhất định, bạn sẽ phải làm một cái gì đó như:
_vti_bin/ListData.svc/<list_name>?$skip=x&$top=(x+y)
nơi mỗi lần thông qua các vòng lặp bạn sẽ có một cái gì đó giống như x+=y
Bạn có thể sử dụng phương pháp cũ mà tôi đã mô tả ở trên hoặc xem câu trả lời của tôi bên dưới để được giải thích cách thực hiện điều này bằng cách sử dụng SP2013 OData
Nếu tôi muốn thực hiện chức năng trước đó, làm thế nào tôi có thể đạt được điều đó? Bất kì lời đề nghị nào? –
Vì $ skiptoken là ID, tôi cũng rất thận trọng khi thực hiện lọc và phân trang phía máy chủ. – Kode