プラン: 注文リストのページネーション
ゴール
既存のクライアントが受け取る内容を変えずに、GET /orders にカーソルページネーションを追加します。
手順
- src/routes/orders.ts 内で、クエリから limit と cursor を読み取ります。limit のデフォルトは 50、許可される最大値は 200 です。
- src/db/orders.ts に listOrders({ limit, cursor }) を追加します。created_at、その次に id の順で並べ替え、nextCursor も返します。
- どちらのパラメーターも送信されない場合は、従来どおり全リストを返します。それ以外の場合は { items, nextCursor } を返します。
- tests/orders.test.ts に、最初のページ・次のページ・最後のページのテストを追加します。
検証
npm test -- orders を実行します。その後、/orders?limit=2 を2回リクエストし、2回目に nextCursor を渡します。4件の異なる注文が返り、重複はありません。
禁止事項
orders テーブルを変更したり、パラメーターが送信されない場合の応答を変更したりしないでください。