我们可以ProductsAPI
浏览我们网站上可用的产品,这些产品由我们的移动应用程序(Android 和 iOS)使用。以下是基本设计:
URL: /api/products/
Response:
[
{
"id" : 123,
"name" : "abc",
"detailsUrl" : "/api/products/123"
},
{
"id" : 124,
"name" : "xyz",
"detailsUrl" : "/api/products/124"
}
]
在这里,detailsUrl
包含ProductDetails
页面的 API URL。
现在,我们需要在新版本的应用程序中对 API 的响应进行一些更改,ProductDetails
并需要对其进行版本化。URL 将更改为 - /api/v2/products/{id}
(我们通过 URL 使用 API 版本控制)。
由于我们不希望以前版本的应用程序中的新响应,我们需要创建一个新版本的ProductsAPI
也将发送新ProductDetailsAPI
的 url 作为响应。
API 以这种方式耦合。如果我们更改任何子 API 的版本,父 API 版本也需要更改。处理此问题的推荐方法是什么?我们是否应该改变对 API 进行版本控制的方式(使用标头或其他东西)?