Bạn không cần phiên bản API REST. Với REST, việc tạo phiên bản diễn ra trong thời gian chạy hoặc thông qua cái mà người ta có thể gọi là 'quy tắc mở rộng tải trọng phải bỏ qua' hoặc thông qua thương lượng nội dung.
'quy tắc tiện ích tải trọng phải bỏ qua' tham chiếu đến khía cạnh bạn xây dựng vào thiết kế thư của mình. 'Phải bỏ qua' có nghĩa là một phần mềm xử lý thông điệp của định dạng đã cho phải bỏ qua bất kỳ cấu trúc cú pháp không xác định nào. Đây là những gì chúng ta đều biết từ HTML và những gì làm cho nó có thể chèn tất cả các loại thẻ ưa thích vào một trang HTML mà không cần phân tích cú pháp nghẹt thở.
'Phải bỏ qua' cho phép bạn phát triển khả năng của dịch vụ bằng cách thêm nội dung vào những gì bạn đã gửi mà không xem xét các khách hàng chỉ hiểu các phiên bản cũ hơn.
Thương lượng nội dung đề cập đến cơ chế tích hợp HTTP trong việc thương lượng đại diện thực tế mà máy chủ gửi đến một ứng dụng khách đã cho lúc chạy. Kịch bản tiêu biểu là: Khách hàng gửi tiêu đề Chấp nhận trong yêu cầu để quảng cáo những gì họ có khả năng và máy chủ chọn đại diện để gửi lại dựa trên các khả năng này. Nhưng cũng có các biến thể của chủ đề này (xem ở đây để biết chi tiết: http://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html).
Thương lượng nội dung cho phép thay đổi không tương thích, có nghĩa là tôi có thể phát triển dịch vụ của mình để có thể gửi các phiên bản cũ và mới không tương thích và dựa trên tiêu đề Chấp nhận dịch vụ của tôi.
Tóm lại: với cả hai cách tiếp cận, API của bạn vẫn như cũ. Không cần phải thực hiện bất kỳ phiên bản nào ở cấp API - đặc biệt là không bao gồm các mã định danh phiên bản thường được đề xuất (nhưng hoàn toàn sai) trong các URI (nhớ, bạn đang làm REST ở đây, không phải SOAP!)
Nguồn
2011-10-01 12:24:46
Làm cách nào bạn xử lý ngược sự thay đổi mô hình/cơ sở dữ liệu không tương thích, trong khi cũng cho phép các khách hàng cũ/được triển khai tiếp tục làm việc trong giai đoạn chuyển tiếp? –