我們有一個ProductsAPI
來瀏覽我們網站上的產品,這些產品已被我們的移動應用程序使用(Android & iOS)。以下爲基本設計:使用HATEOAS對耦合RESTful API進行版本控制
URL: /api/products/
Response:
[
{
"id" : 123,
"name" : "abc",
"detailsUrl" : "/api/products/123"
},
{
"id" : 124,
"name" : "xyz",
"detailsUrl" : "/api/products/124"
}
]
這裏,detailsUrl
包含ProductDetails
頁面的API URL。
現在,我們需要在新版本的應用中對ProductDetails
API的響應進行一些更改,並且需要對其進行版本管理。 URL將更改爲 - /api/v2/products/{id}
(我們使用通過URL進行API版本控制)。
由於我們不希望在以前版本的應用中使用新的響應,因此我們需要創建一個新版本的ProductsAPI
,這也將發送新的ProductDetailsAPI
url作爲迴應。
API以這種方式耦合。如果我們更改任何子API的版本,則父API版本也需要更改。建議如何處理這個問題?我們是否應該改變API版本的使用方式(使用頭文件或其他)?