action #121105
closedcoordination #80142: [saga][epic] Scale out: Redundant/load-balancing deployments of openQA, easy containers, containers on kubernetes
coordination #92854: [epic] limit overload of openQA webUI by heavy requests
action #97190: Limit size of initial requests everywhere, e.g. /, /tests, etc., over webUI and API
action #119428: Ensure users can get all the data for limited queries, e.g. with pagination
Add pagination for GET /api/v1/test_suites, GET /api/v1/test_suites/:id, GET /api/v1/machines, GET api/v1/machines/:id, GET /api/v1/products, GET /api/v1/products:id size:M
Description
Motivation¶
Proper pagination is planned for every query and API route in #119428. After #120841 has been implemented we now have a prototype to replicate. So this needs to be done for GET /api/v1/test_suites
, GET /api/v1/test_suites/:id
, GET /api/v1/machines
, GET api/v1/machines/:id
, GET /api/v1/products
, and GET /api/v1/products:id
. They all share the same code.
Acceptance criteria¶
- AC1: API endpoints
GET /api/v1/test_suites
,GET /api/v1/test_suites/:id
,GET /api/v1/machines
,GET api/v1/machines/:id
,GET /api/v1/products
, andGET /api/v1/products:id
have pagination
Suggestions¶
- Use
limit
/offset
query parameters andprev
/next
/first
relations inLink
headers - If possible use the
DBIx::Class
features forlimit
andoffset