Простите меня, я очень новичок в использовании REST.
В настоящее время я использую SP2013 Odata (_api/web/lists/getbytitle('<list_name>')/items?)
, чтобы получить содержимое списка. В списке содержится 199 элементов, поэтому мне нужно позвонить ему дважды и каждый раз запрашивать другой набор элементов. Я решил, что смогу сделать это, позвонив:
_api/web/lists/getbytitle('<list_name>')/items?$skip=100&$top=100
каждый раз изменяя, сколько мне нужно пропустить. Проблема в том, что это только когда-либо возвращает первые 100 предметов. Есть ли что-то, что я делаю неправильно или $skip
сломан в службе OData?
Есть ли лучший способ перебора вызовов REST, считая, что этот способ не работает или не практичен?
Я использую протокол JSon с Accept
заголовком, равным application/json;odata=verbose
Я полагаю, что $top=100
действительно не требуется
Изменить: я просмотрел его больше, и я не совсем уверен в этом, но использование $skip
отлично работает, если вы используете метод, представленный в SharePoint 2010, то есть _vti_bin/ListData.svc/<list_name>?$skip=100
На самом деле, достаточно смешно, старый способ не устанавливает ограничение на 100 элементов при возврате. Так что пропустить даже не нужно. Но если вы хотите вернуть только определенный сегмент данных, вам нужно будет сделать что-то вроде:
_vti_bin/ListData.svc/<list_name>?$skip=x&$top=(x+y)
где каждый раз через цикл вы должны иметь что-то вроде x+=y
Вы можете использовать старый метод, описанный выше, или проверить мой ответ ниже для объяснения того, как это сделать, используя OData SP2013