You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure API Management单API下操作指定不同serviceUrl及版本适配问询

Azure API Management 问题解答

1. 修改单个操作指向全新端点(不创建新API集合)

可以直接在目标操作的BICEP定义中覆盖serviceUrl属性,无需创建新的API集合。默认情况下操作会继承API级的serviceUrl,但显式为单个操作指定serviceUrl后,该操作会使用你设置的全新端点,其他操作仍保留对API级serviceUrl的继承。

示例BICEP代码片段:

resource api 'Microsoft.ApiManagement/service/apis@2023-09-01-preview' = {
  name: 'register-api-transaction'
  parent: apimService
  properties: {
    serviceUrl: 'https://original-api-endpoint.com'
    displayName: 'Register API Transaction'
    path: 'register-transaction'
    operations: [
      // 第一个操作:继承API的serviceUrl
      {
        name: 'get-transaction-history'
        properties: {
          displayName: 'Get Transaction History'
          method: 'GET'
          urlTemplate: '/history'
        }
      }
      // 第二个操作:覆盖为全新端点
      {
        name: 'get-transaction-summary'
        properties: {
          displayName: 'Get Transaction Summary'
          method: 'GET'
          urlTemplate: '/summary'
          serviceUrl: 'https://new-api-endpoint.com' // 显式指定新端点
        }
      }
    ]
  }
}

2. 通过版本控制实现操作指向全新基础URL

可以通过API版本控制实现这一需求。你可以为register-api-transaction创建一个新版本,在该版本的API级别设置全新的基础serviceUrl,让目标操作(或所有操作)使用这个版本的基础URL;也可以仅在新版本的目标操作中单独指定serviceUrl,灵活控制范围。

具体实现思路:

  • 先定义API版本集,为后续版本管理提供统一标识
  • 创建原API的新版本,可在版本API级别设置全新的serviceUrl
  • 版本化的API会有独立的访问路径(如/v2/register-transaction),客户端通过访问对应版本路径使用新基础URL的操作
  • 若仅需单个操作在新版本中使用新基础URL,只需在该版本的操作定义中显式设置serviceUrl即可,其他操作可继承版本API的serviceUrl或保持原有配置

示例BICEP代码片段:

// API版本集
resource versionSet 'Microsoft.ApiManagement/service/api-version-sets@2023-09-01-preview' = {
  name: 'register-api-version-set'
  parent: apimService
  properties: {
    displayName: 'Register API Version Set'
    versioningScheme: 'Path'
  }
}

// 原API
resource api 'Microsoft.ApiManagement/service/apis@2023-09-01-preview' = {
  name: 'register-api-transaction'
  parent: apimService
  properties: {
    serviceUrl: 'https://original-api-endpoint.com'
    displayName: 'Register API Transaction'
    path: 'register-transaction'
    versionSetId: versionSet.id
  }
}

// V2版本API,使用全新基础URL
resource apiV2 'Microsoft.ApiManagement/service/apis@2023-09-01-preview' = {
  name: 'register-api-transaction-v2'
  parent: apimService
  properties: {
    serviceUrl: 'https://new-base-url.com'
    displayName: 'Register API Transaction V2'
    path: 'register-transaction'
    version: 'v2'
    versionSetId: versionSet.id
    operations: [
      // 目标操作:使用版本API的新基础URL
      {
        name: 'get-transaction-summary'
        properties: {
          displayName: 'Get Transaction Summary V2'
          method: 'GET'
          urlTemplate: '/summary'
        }
      }
      // 其他操作可按需配置继承或自定义serviceUrl
    ]
  }
}

内容的提问来源于stack exchange,提问作者William Fernandes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:00:10