使用 apiVersionSetId 创建 API 操作时如何更新父 API 集的 serviceUrl

问题描述 投票:0回答:1

我在 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 更新为我刚刚创建的版本?

azure azure-api-management
1个回答
0
投票

正如评论中提到的,您可以使用 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>

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.