[
{
"method": "GET",
"path": "/items?page=2&page_size=10",
"expected_status": 200,
"expected_body": {
"items": [
{
"id": 11,
"name": "item-11"
},
{
"id": 12,
"name": "item-12"
},
{
"id": 13,
"name": "item-13"
},
{
"id": 14,
"name": "item-14"
},
{
"id": 15,
"name": "item-15"
},
{
"id": 16,
"name": "item-16"
},
{
"id": 17,
"name": "item-17"
},
{
"id": 18,
"name": "item-18"
},
{
"id": 19,
"name": "item-19"
},
{
"id": 20,
"name": "item-20"
}
],
"page": 2,
"page_size": 10,
"total": 25,
"total_pages": 3
}
},
{
"method": "GET",
"path": "/items?page=abc&page_size=10",
"expected_status": 400,
"expected_body": {
"error": "page and page_size must be integers"
}
}
]Paginated list: page given as a numeric string ("2") parses fine and returns 200; a non-numeric page value ("abc") returns 400 {"error":"page and page_size must be integers"} -- the anti-hardcoding pair.