Mục tiêu: thay đổi API mà không phá client cũ. Các cách:
- URI versioning (
/v1/users): rõ ràng, dễ cache/định tuyến — phổ biến nhất, nhưng lẫn version vào URL tài nguyên. - Query param (
/users?version=1): đơn giản, nhưng dễ bị bỏ sót. - Header (
Accept: application/vnd.app.v1+jsonhoặc custom header): URL sạch, đúng tinh thần REST, nhưng khó test/khám phá hơn.
Nguyên tắc: chỉ tăng version khi có breaking change; thay đổi tương thích ngược (thêm field) thì không cần. Kèm chính sách deprecation rõ ràng.