Supported versions với API versioning sử dụng Spring framework

Khi enable API versioning sử dụng Spring Framework 7 trở lên, ngoài việc định nghĩa default version cho những endpoint chưa được định nghĩa version, các bạn còn có thể định nghĩa danh sách các version được support bởi API của các bạn bằng cách sử dụng phương thức addSupportedVersions() khi cấu hình cho API versioning như sau:

Khi sử dụng phương thức addSupportedVersions() này, thì ngoài những version đã được định nghĩa specific cho một số endpoint, API của chúng ta cũng sẽ support cho những version được khai báo trong phương thức addSupportedVersions().

Những version được định nghĩa trong phương thức addSupportedVersions() sẽ được tự động gán cho những endpoint không định nghĩa version hoặc những endpoint được định nghĩa với baseline version sử dụng dấu “+” ở cuối của giá trị version, như sau:

Những version được support bởi API của mình, lớn hơn baseline version này, sẽ được handle bởi phương thức hello1_2_0() đó các bạn!

Cho ví dụ trên của mình, default version sẽ là 1.0.0, supported version là 5.0.0 và 1.0.2, specific version là 1.1.0 và 1.2.0. API của mình sẽ có thể handle các version sau cho endpoint “/hello”: 1.0.0, 1.0.2, 1.1.0, 1.2.0 và 5.0.0.

Theo thứ tự tăng dần của version thì các version 1.0.0 và 1.0.2 sẽ được handle bởi phương thức hello() đó các bạn! Nếu các bạn request với version 1.0.0 và 1.0.2 thì sẽ thấy kết quả như mình như sau:

và:

Version 1.1.0 sẽ được handle bởi phương thức hello_1_1_0():

Và version 1.2.0, 5.0.0 sẽ được handle bởi phương thức hello1_2_0():

Nếu mình remove support version 5.0.0 ở trên đi:

rồi request lại endpoint “/hello” với version 5.0.0 thì các bạn sẽ thấy API của chúng ta không còn hỗ trợ cho version 5.0.0 nữa:

Add Comment