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ã TC | Nội dung | Kỳ vọng |
|---|---|---|
| TC-OAS-01 | Chạ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áo | Response khớp đúng schema: đủ field bắt buộc, đúng kiểu dữ liệu, giá trị enum hợp lệ |
| TC-OAS-02 | Khi dev đổi cấu trúc response (thêm/bớt/đổi tên field) mà quên cập nhật file OpenAPI | Có 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-03 | Kiểm tra file OpenAPI có được đưa vào quy trình review/cập nhật mỗi khi API thay đổi không | File đặ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 |
| Schema | Cấu trúc dữ liệu được định nghĩa — kiểu, field bắt buộc, ràng buộc giá trị |
| Breaking change | Thay đổ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.