API Versioning (v1 vs v2)
GET · /api/practice/level5/v1/profile vs /v2/profile · Chuyên sâu
Mô tả bài tập
Hệ thống có 2 phiên bản: /api/practice/level5/v1/profile trả về { name, email } (kiểu cũ), còn /api/practice/level5/v2/profile trả về { fullName, contact: { email } } (kiểu mới, đã đổi cấu trúc). Đây là tình huống rất thường gặp khi API tiến hoá theo thời gian nhưng vẫn phải giữ tương thích ngược cho client cũ.
Mục tiêu học được
- Hiểu tại sao API cần versioning và các cách phổ biến (URL path, header Accept-Version...)
- So sánh 2 cấu trúc response khác nhau cho cùng 1 dữ liệu
- Ý thức được việc breaking change ảnh hưởng thế nào tới client đang dùng bản cũ
Lệnh curl
curl -i "http://testing-api.systemhub.uk/api/practice/level5/v1/profile" -H "X-Practice-Token: YOUR_TOKEN"
curl -i "http://testing-api.systemhub.uk/api/practice/level5/v2/profile" -H "X-Practice-Token: YOUR_TOKEN"
Các bước làm trên Postman
- GET http://testing-api.systemhub.uk/api/practice/level5/v1/profile, ghi lại cấu trúc response
- GET http://testing-api.systemhub.uk/api/practice/level5/v2/profile, so sánh cấu trúc khác biệt
- Kiểm tra cả 2 version đều trả về cùng thông tin, chỉ khác cách tổ chức field
Đăng nhập để lệnh curl ở trên tự động điền sẵn Practice Token thật của bạn.
🧪 Thử nghiệm trực tiếp
Gọi API ngay tại đây. Nếu bạn đã đăng nhập, tiến độ sẽ được ghi nhận tự động khi gọi đúng như kỳ vọng của bài.
Kết quả
Status: