Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] PAGINATE+meta: Phân trang kèm tổng số trang

    REST — Phân trang đầy đủ metadata

    API trả metadata phân trang: tổng số bản ghi total, tổng số trang totalPages = ceil(total/limit), và cờ hasNext. PAGE <p> <limit> trả trang p (đếm từ 1).

    Ví dụ I/O

    Input:

    CREATE a
    CREATE b
    CREATE c
    CREATE d
    CREATE e
    PAGE 2 2
    

    Output:

    {"status":200,"page":2,"limit":2,"total":5,"totalPages":3,"hasNext":true,"items":[{"id":3,"name":"c"},{"id":4,"name":"d"}]}
    
    • Định dạng đầu vào:

      Mỗi dòng CREATE <name> hoặc PAGE <p> <limit>.

    • Ràng buộc đầu vào:

      limit ≥ 1. Số lệnh ≤ 300.

    • Định dạng đầu ra:

      Với PAGE in {"status":200,"page":..,"limit":..,"total":..,"totalPages":..,"hasNext":..,"items":[...]}. hasNext=true nếu p<totalPages.

    Ví dụ:

    Đầu vào:

    CREATE a
    CREATE b
    CREATE c
    CREATE d
    CREATE e
    PAGE 2 2
    

    Đầu ra:

    {"status":200,"page":2,"limit":2,"total":5,"totalPages":3,"hasNext":true,"items":[{"id":3,"name":"c"},{"id":4,"name":"d"}]}

    Giải thích:

    5 bản ghi, limit 2 → 3 trang; trang 2 còn trang sau nên hasNext=true.

    Đang tải editor...