Sharepoint 2013 API REST pas le retour de tous les éléments d'une liste
Le titre mon problème tout à fait exactement. Si j'essaie de rassembler tous les 400+ éléments d'une liste à l'aide de sharepoint API REST, je ne reçois 100 premiers.
J'ai lu http://msdn.microsoft.com/en-us/library/office/dn292552(v=office.15).aspx et dans le "Travailler avec les éléments de la liste en utilisant le REPOS", ils sont en indiquant que
L'exemple suivant montre comment récupérer tous d'une liste des éléments.
url: http://site url/_api/web/lists/GetByTitle(‘Test')/items
method: GET
headers: ...
J'ai souligné le mot, parce que ce n'est pas ce que je suis ...
Suis-je raté quelque chose? Est-il une option que je doit activer/désactiver à gett vraiment tous les éléments?
Grâce
Aucun code n'est nécessaire pour voir que je suis recevant uniquement le premier 100 articles. Je ne reçois que cette quantité d'articles simplement en visitant l'URL dans mon navigateur (il suffit donc de remplacer l'url du site et de Test dans le
http://site url/_api/web/lists/GetByTitle(‘Test')/items
avec mes propres valeurs et je reçois XML avec ces éléments 100)aucun code n'est nécessaire pour voir le résultat, mais le code peut être nécessaire de comprendre pourquoi 😉
(re-lecture de ma réponse ... c'est peut sonnait un peu offensive, désolé :P) eh Bien ... je suis peu confus. Je n'ai pas vraiment avoir un code pour cela. Je viens de tout simplement faire une requête GET en powershell avec ces en-têtes
$req.headers.add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
, $req.method = "GET"
et $req.Credentials = [system.net.credentialcache]::defaultcredentials
, c'est assez bien.Ce gars avait un problème similaire, alors qu'il tente de retourner une liste de sites et résolu par le retour de lots: stackoverflow.com/questions/45025996/...
OriginalL'auteur leopik | 2014-09-26
Vous devez vous connecter pour publier un commentaire.
La limitation est due à côté serveur d'échange.
Une solution de contournement est de récupérer 100 éléments à la fois, ou d'annuler la limitation de la saisie d'un nombre d'éléments:
https://$DOMAIN/$SITE/_api/web/Lists/getByTitle('$LIST')/Items?$top=1000
Noter qu'il existe aussi un seuil de 5000.
... mais, juste par curiosité, comment pourrais-je récupérer de 100 articles dans des lots (pour que je puisse avoir le contrôle sur le lot numéro je veux obtenir à côté)?
il n'est pas facile... Peut-être commencer par ici msdn.microsoft.com/en-us/library/office/... puis parcourir les blogs et les forums pour trouver ce qui fonctionne réellement
Merci encore. Je vais avoir un coup d'oeil.
OriginalL'auteur Christophe
Ajoutant à Christophe de la réponse, je dirais liste de tous (potentiellement 5000) des éléments dans une liste et l'analyse conduirait à des problèmes de performances.
Si vous interrogez sharepoint pour afficher tous les éléments dans une liste en particulier il ne serait d'imprimer les 100 premiers. Mais la réponse xml fournit également l'url de requête pour les 100 prochaines éléments de la liste.
À la fin de la réponse xml, vous verrez une balise comme ceci
L'url à l'intérieur de
href="...."
est ce que vous aurez besoin.L'interrogation ci-dessus serait de vous fournir une liste des 100 ou moins des éléments.
Si il y a encore plus à gauche des éléments de cette réponse xml permettrait une autre
<link >
tag et si pas cette balise ne sont pas exister.Mieux à gérer de 5 000 éléments dans des ensembles de 100 plutôt que tous ensemble, à mon avis.
OriginalL'auteur mouserat
Vous pouvez utiliser RowLimit & RowsPerPage en appel reste. Ci-dessous est l'exemple
OriginalL'auteur Nishkalank