Pagination & pageSize par objet

Pagination & pageSize par objet
0
Tags: #<Tag:0x00007f7691fc69a8>

Bonjour,

Je tente de modifier la taille des pages renvoyées par un appel API (GET) via le mapping Renault. J’utilise paramètre “_page” qui permet d’activer la pagination. En revanche, je ne parviens pas à modifier la taille des pages retournées.
Existe-il un paramètre (du même genre que “_page”) pour gérer la taille des pages?
Faut-il passer par un hook sur l’objet pointé lors de l’appel? Sachant que dans cette optique j’ai déjà tenté (dans le preSearch) les méthode “setMaxRows” et “setListSize”.

Merci

David avait posté ceci en août dernier: Pagination dans les recherches sur services REST mappés

ça fonctionne (évidemment) mais sous réserve d’appeller setMinRows(50); et setMaxRows(50); pour forcer la taille des pages à 50. Je n’ai pas trouvé dans la doc d’autre fonction qui permet de retailler les pages.

NB: jouer sur la taille des pages aura une incidence sur les temps de réponse (à surveiller donc en n’activant cette logique qu’au cas par cas; 20 lignes, c’est en général suffisant; pour comparaison, google taille l’auto-complétion des recherches sur 10 lignes).

Bruno

Oui la taille des pages est définie de façon globale par utilisateur (cf champs min/max liste).
Et surchargeable par code via getGrant().setMin/MaxRows(100).

Il faudra effectivement pouvoir spécialiser ces paramètres par objet suivant leur complexité ou l’usage, je mets ça dans le backlog V5.

Bonjour,

Je rouvre le sujet car après avoir discuté avec les API Référents chez Renault, la solution d’imposer, même en spécifiant par objet et par user, la taille de la pagination ne convient pas vraiment.
Le soucis majeur vient de la responsabilité du temps de réponse. En effet, les API sont notées en fonction de ce critère entre autres et en forçant la pagination pour suivre un besoin métier, on prend la responsabilité du temps de réponse majoré par cette modification.
A l’inverse, si c’est au consommateur de spécifier le nombre d’éléments retournés (via le paramètre “pagesize” par exemple), nous pouvons garantir un temps de réponse pour 20 éléments par exemple (valeur par défaut). Charge au consommateur d’assumer un temps de réponse plus long s’il souhaite augmenter le nombre d’éléments retournés.

Merci

Ajouter un param utilisateur genre _pagesize pour définir la taille de la page pour l’objet considéré (avec par défaut la taille définie sur l’objet considéré) est sans doute envisageable au niveau du cas particulier des APIs mappées. Je vais regarder les impacts et je vous tiens au courant

Parfait, merci beaucoup!

Ca a été mis en place sur la version de dev (alpha):

Sur release on va voir si c’est backportable sans impact ailleurs…

1 Like

C’est backporté en P24

Merci, je teste ça aujourd’hui !

C’est bon ça fonctionne bien !

1 Like