我在 BICEP 代码中创建了这个 API 集:
resource NamesApi 'Microsoft.ApiManagement/service/apis@2022-08-01' = {
name: '${name}-api-transaction'
parent: apimService
properties: {
displayName: 'Names APIs'
apiRevision: '1'
subscriptionRequired: true
serviceUrl: nameSearchUrl
path: 'internal/name'
protocols: [
'http'
'https'
]
authenticationSettings: {}
subscriptionKeyParameterNames: {
header: 'Ocp-Apim-Subscription-Key'
query: 'subscription-key'
}
isCurrent: true
}
}
在上面添加 apiVersionSetId 属性给了我一个版本化的 API - 一切都很好。
现在如何将新 api 操作的 serviceUrl 更新为我刚刚创建的版本?
正如评论中提到的,您可以使用 set-backend-service 策略将新 Api 操作的
serviceUrl
更新为版本化 API。
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2023-05")">
<set-backend-service base-url="http://xxxx.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2023-03")">
<set-backend-service base-url="http://xxxx.com/api/9.1/" />
</when>
</choose>
<base />
</inbound>
<outbound>
<base />
</outbound>
</policies>