Mmaiqai.com
📜 API Testing · Chương 6 · Mục 6.2

Validate theo đặc tả OpenAPI/Swagger

🎯 Mục tiêu học: biết cách dùng đặc tả OpenAPI (Swagger) có sẵn để tự động kiểm tra request/response có đúng "hợp đồng" đã khai báo hay không, thay vì đọc tài liệu rồi so sánh bằng mắt.

OpenAPI là gì

OpenAPI (trước đây gọi là Swagger) là 1 định dạng chuẩn (thường viết bằng YAML/JSON) để mô tả API: có những endpoint nào, mỗi endpoint nhận tham số gì, response trả về cấu trúc ra sao. Vì đây là định dạng máy đọc được, có thể dùng tool tự động validate response thật khớp với đặc tả.

# Trích đoạn OpenAPI mô tả response của GET /v1/orders/{orderId}
responses:
  '200':
    content:
      application/json:
        schema:
          type: object
          required: [orderId, customerId, status, total]
          properties:
            orderId: { type: string }
            customerId: { type: string }
            status: { type: string, enum: [PENDING, PAID, CANCELLED] }
            total: { type: number, minimum: 0 }

Với schema này, 1 tool validate tự động sẽ báo lỗi ngay nếu response thật thiếu field total, hoặc trả status với giá trị ngoài 3 giá trị enum đã khai báo, hoặc total là số âm.

Checklist kiểm tra

Cách kiểm tra

Mã TCNội dungKỳ vọng
TC-OAS-01Chạy tool validate response thực tế (vd thư viện openapi-validator hoặc plugin Postman/Schemathesis) đối chiếu với file OpenAPI đã khai báoResponse khớp đúng schema: đủ field bắt buộc, đúng kiểu dữ liệu, giá trị enum hợp lệ
TC-OAS-02Khi dev đổi cấu trúc response (thêm/bớt/đổi tên field) mà quên cập nhật file OpenAPICó bước kiểm tra tự động phát hiện được sự sai lệch này (breaking change), không để phát hiện muộn khi consumer đã bị lỗi
TC-OAS-03Kiểm tra file OpenAPI có được đưa vào quy trình review/cập nhật mỗi khi API thay đổi khôngFile đặc tả luôn phản ánh đúng hành vi thật — đặc tả lỗi thời còn nguy hiểm hơn không có đặc tả

📌 Ghi nhớ

Validate theo OpenAPI chỉ có giá trị nếu file đặc tả luôn được cập nhật đúng thực tế — nếu không, việc validate chỉ đang xác nhận API khớp với 1 tài liệu đã lỗi thời, không còn ý nghĩa.

📖 Thuật ngữ Anh–Việt (mục này)

Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.

Thuật ngữ (EN)Nghĩa & ghi nhớ nhanh
OpenAPIĐặc tả chuẩn (trước đây gọi Swagger) mô tả cấu trúc API dưới dạng máy đọc được
SchemaCấu trúc dữ liệu được định nghĩa — kiểu, field bắt buộc, ràng buộc giá trị
Breaking changeThay đổi API làm hỏng khả năng tương thích với consumer đang dùng

📎 Nội dung do maiqai.com biên soạn — ví dụ minh hoạ, không thuộc hệ thống thật nào.