在Azure API-管理中,如果我们有一个API集和2个API操作,则会执行相同的操作,但新版本现在指向一个全新的端点。
例如下面是BICEP代码:
//API设置
resource regApi 'Microsoft.ApiManagement/service/apis@2022-08-01' = {
name: 'register-api-transaction'
parent: apimService
properties: {
displayName: 'Register APIs'
apiRevision: '1'
subscriptionRequired: true
serviceUrl: registerServiceUrl
path: 'internal/register/search'
protocols: [
'http'
'https'
]
authenticationSettings: {}
subscriptionKeyParameterNames: {
header: 'Ocp-Apim-Subscription-Key'
query: 'subscription-key'
}
isCurrent: true
}
}
字符串
操作:
resource regGetApi 'Microsoft.ApiManagement/service/apis/operations@2021-08-01' = {
name: 'name-register-get'
parent: regApi
properties: {
urlTemplate: '/nameRegister'
method: 'GET'
displayName: 'Name register'
responses: []
}
}
resource searchGetApi 'Microsoft.ApiManagement/service/apis/operations@2021-08-01' = {
name: 'name-search-get'
parent: regApi
properties: {
urlTemplate: '/nameSearch'
method: 'GET'
displayName: 'Name search'
responses: []
}
}
型
问:
如果操作指向不同的serviceUrl,那么我想指向一个呢?两个都指向同一个父对象。
- 我不想创建新的API集
- 我可以在这种情况下使用版本控制吗?新版本将有一个全新的基础URL?
1条答案
按热度按时间9udxz4iz1#
是的,在这种情况下,您可以使用versioning,因为版本控制用于进行
API
更改。您可以同时发布多个API版本,并使用路径、查询字符串或头来区分版本。
要将其重定向到不同的服务URL,您也可以使用
set-backend-service
策略,如给定的MS Doc中详细说明的那样。一旦进行了更改,您还可以添加Versioning scheme,它是表示现有API的新版本的标识符。
字符串
在上面的代码中,我通过将
apiRevision: '2'
和serviceUrl
修改为newServiceUrl
,创建了新版本的API。如果要使用基于路径的版本控制方案,请将版本号(例如:
"/v2"
)添加到API的路径中以指示版本。的数据
的