Offset-based: ?page=2&per_page=20 или ?offset=20&limit=20. Просто, но медленный для больших offset (OFFSET 100000). Cursor-based: ?cursor=abc123 — ID последнего элемента. WHERE id > cursor ORDER BY id LIMIT 20. Быстрый, стабильный, но нельзя прыгать на страницу. Keyset pagination — подвид cursor: ?after=2024-01-01T00:00:00. Response: {"data": [...], "next_cursor": "abc", "has_more": true}. Link header: rel="next", rel="prev". В FastAPI: Query(ge=1) для page, Query(le=100) для per_page. Для больших данных — только cursor-based.
Как реализовать пагинацию API?
Middle
246 просмотровAFK Offer AI
Реализуйте мокирование внешнего API в тестах (unittest.mock)