zestedesavoir / zds-site

Cœur du projet technique de Zeste de Savoir
https://zestedesavoir.com
Other
269 stars 161 forks source link

Pagination : le paramètre page_size peut être ignoré #3268

Closed aesteve closed 6 years ago

aesteve commented 8 years ago

Reproducer :

GET /api/membres?page=2

Retourne 10 résultats

Puis :

GET /api/membres/?page_size=100&page=2

Retourne toujours 10 résultats.

D'après @DevHugo ça semblerait être un problème de cache.

Effectivement il faut toujours inclure l'intégralité des paramètres de la requête dans la clef du cache.

(et éventuellement certains headers qui peuvent changer la tronche de la réponse)

GerardPaligot commented 8 years ago

Effectivement, page est dans la clé et sans doute pas page_size.

aesteve commented 8 years ago

D'ailleurs je comprends pas bien comment fonctionne le cache.

https://github.com/zestedesavoir/zds-site/blob/dev/zds/member/api/views.py#L38-L40

Le bearer est un paramètre implicite à toute mise en cache ?

Parce que (j'ai pas encore essayé) mais si je fais GetMyDetails pour un utilisateur, puis pour un second utilisateur dans un interval de temps relativement court, faudrait pas qu'il me renvoie les infos du premier.

T'aurais une doc @GerardPaligot que je puisse consulter ? Merci :)

GerardPaligot commented 8 years ago

Tu trouveras ton bonheur ici : http://chibisov.github.io/drf-extensions/docs/.

GerardPaligot commented 8 years ago

Le bearer est un paramètre implicite à toute mise en cache ? Parce que (j'ai pas encore essayé) mais si je fais GetMyDetails pour un utilisateur, puis pour un second utilisateur dans un interval de temps relativement court, faudrait pas qu'il me renvoie les infos du premier.

Ooooh ... ça expliquerait un problème récent que j'ai eu avec un projet basé sur l'API.

aesteve commented 8 years ago

Yep.

http://chibisov.github.io/drf-extensions/docs/#key-constructor

    user = bits.UserKeyBit()
AmarOk1412 commented 6 years ago

Je ferme, https://zestedesavoir.com/api/membres/?page_size=100&page=2 retournant bien 100 résultats :)