PnX-SI/Utils-Flask-SQLAlchemy

Cohérence offset API / OFFSET SQL et numéro de page

lpofredc opened this issue · 1 comments

Lors de l'appel à l'API d'export du module d'export, le paramètre offset correspond au numéro de page de la réponse (clé page dans la réponse d'API), différent d'un OFFSET SQL

data = q.limit(self.limit).offset(self.offset * self.limit).all()

Lorsque OFFSET vaut 0 (et donc aussi la page), alors il renvoie automatiquement les premières lignes de la réponse (OFFSET sql désactivé)

Lorsque le nombre de données est inférieur à la limite du nombre de réponse, alors la page vaut également 0.

Ne serait-ce pas plus logique d'utiliser une variable page correspondant à un vrai numéro de page plutôt qu'à un paramètre offset différent d'un OFFSET SQL, cf. PnX-SI/Utils-Flask-SQLAlchemy.

le OFFSET SQL serait alors calculé avec offset = limit * (page - 1).

Flask-SQLAlchemy propose déjà un utilitaire pour gérer la pagination : https://flask-sqlalchemy.palletsprojects.com/en/2.x/api/#flask_sqlalchemy.Pagination
Il serait intéressant de voir à l’utiliser plutôt que de devoir maintenir la même chose de notre côté.