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] TRANSACTION: Bulk all-or-nothing (atomic)

    REST — Bulk giao dịch (atomic, all-or-nothing)

    BULK <n> <name1..namen> tạo n bản ghi nhưng theo nguyên tắc atomic: nếu BẤT KỲ name nào không hợp lệ (rỗng, ký hiệu -) thì toàn bộ request bị từ chối (400), KHÔNG tạo bản ghi nào (id không tăng). Nếu tất cả hợp lệ → 201 tạo cả n. COUNT in số bản ghi.

    Ví dụ I/O

    Input:

    BULK 2 a b
    BULK 2 c -
    COUNT
    

    Output:

    {"status":201,"created":2}
    {"status":400,"error":"rolled back"}
    {"status":200,"count":2}
    
    • Định dạng đầu vào:

      Mỗi dòng BULK <n> <name1> ... <namen> hoặc COUNT. name='-' nghĩa là không hợp lệ.

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

      1 ≤ n ≤ 50. Số lệnh ≤ 200.

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

      BULK toàn hợp lệ in {"status":201,"created":<n>}; có name lỗi in {"status":400,"error":"rolled back"}. COUNT in {"status":200,"count":<n>}.

    Ví dụ:

    Đầu vào:

    BULK 2 a b
    BULK 2 c -
    COUNT
    

    Đầu ra:

    {"status":201,"created":2}
    {"status":400,"error":"rolled back"}
    {"status":200,"count":2}

    Giải thích:

    Bulk đầu hợp lệ tạo 2; bulk sau có name '-' nên rollback, không tạo gì; COUNT=2.

    Đang tải editor...