Pagination OData avec WebApi ($ inlinecount)
Je suis à l'aide de OData pour paginer une longue liste d'éléments retournés à partir d'une api web appel. Je peux filtrer les données via l'url avec le début et la fin de l'index.
La question que je me pose est, comment puis-je savoir le nombre total d'éléments? Donc, je peux afficher la Page 1 de 3 (20 points) sur mon appareil mobile qui appelle l'api web.
source d'informationauteur amateur
Vous devez vous connecter pour publier un commentaire.
Voici un lien vers une version de travail ont été mis en œuvre comme un QueryableAttribute.
http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/88372a0b4ab9#src%2fMicrosoft.Web.Http.Data%2fQueryFilterAttribute.cs
edit:
Utilisez ce lien pour une explication détaillée ->
http://www.strathweb.com/2012/08/supporting-odata-inlinecount-with-the-new-web-api-odata-preview-package/
Vous pouvez utiliser $inlinecount=allpages dans la requête pour obtenir le nombre de toutes les entités dans les résultats sans le haut et sauter. Par exemple:
http://services.odata.org/OData/OData.svc/Products?$top=1&skip=1&$inlinecount=allpages
Renvoie un seul produit, mais aussi inline nombre de 9 (puisqu'il y a 9 produits dans l'entité).
Essayer cette approche: http://www.strathweb.com/2012/08/supporting-odata-inlinecount-with-the-new-web-api-odata-preview-package/
Il utilise la dernière API Web OData paquet.
Jusqu'à la finalisation de l'API Web OData colis est expédié (le courant de l'automne, devrait être aux alentours de novembre), lorsque l' $inlinecount est pris en charge hors de la boîte, cette solution est probablement le meilleur pari.
J'ai eu exactement la question la semaine dernière. Découvrez l'Extension de votre ASP.NET l'API Web de réponses avec les métadonnées utiles
J'ai utilisé ce post et exemple de code pour obtenir un échange de grille et en cours d'exécution à l'aide de OData. Comme détaillé dans l'exemple que j'ai créé de la délégation gestionnaire de capturer le HttpResponseMessage et l'envelopper dans des métadonnées personnalisées qui comprend un élément de comptage. Un attribut personnalisé, CustomQueryableAttribute, est également créé, qui hérite de la valeur par défaut QueryableAttribute.
Il peut sembler un peu complexe ici, mais c'est en fait assez simple à mettre en œuvre. J'ai eu quelque chose qui fonctionne en 30 minutes environ.
Espérons que les futures versions de l'API Web ont plus complète OData soutien.
EDIT: Odata support ne sera PAS de livraison avec l'API Web. Le queryable attribut est supprimé de la version RTM. Plus complète OData de soutien seront disponibles peu de temps après la première communiqué par un package Nuget.