繁体   English   中英

如何使用 Azure 资源管理器在 Azure API 管理中对 API 进行版本控制

[英]How to version an API in Azure API Management using Azure Resource Manager

使用门户在 Azure API 管理服务中创建新 API 时,可以指定是否希望对 API 进行版本控制。 但是,在使用 ARM 的管理服务中创建 API 时,我找不到复制此方法的方法。 这是目前不支持的,还是我遗漏了什么?

我尝试在门户中创建版本化 API,并将创建的模板与非版本化 API 的模板进行比较,但看不出有什么区别。

提前致谢。

要通过 ARM 脚本实现这一点,您需要先创建一个 ApiVersionSet 资源:

{
    "name": "[concat(variables('ManagementServiceName'), '/', variables('VersionSetName'))]",
    "type": "Microsoft.ApiManagement/service/api-version-sets",
    "apiVersion": "2017-03-01",
    "properties": {
        "description": "Api Description",
        "displayName": "Api Name",
        "versioningScheme": "Segment"
    }
}

然后更新Microsoft.ApiManagement/service/apis资源上的apiVersionSetId属性:

{
        "type": "Microsoft.ApiManagement/service/apis",
        "name": "[concat(variables('ManagementServiceName'), '/', variables('ApiName'))]",
        "apiVersion": "2017-03-01",
        "dependsOn": [
            "[resourceId('Microsoft.ApiManagement/service/api-version-sets', variables('ManagementServiceName'), variables('VersionSetName'))]"
        ],
        "properties": {
            "displayName": "string",
            "apiRevision": "1",
            "description": "",
            "serviceUrl": "string",
            "path": "string",
            "protocols": [
                "https"
            ],
            "isCurrent": true,
            "apiVersion": "v1",
            "apiVersionName": "v1",
            "apiVersionDescription": "string",
            "apiVersionSetId": "[concat('/api-version-sets', variables('VersionSetName'))]"
        }
    }

api-version-sets 的资源

              "name": "my-api-version-sets",
              "type": "api-version-sets",
              "apiVersion": "2018-01-01",
              "properties": {
                "displayName": "Provider API",
                "versioningScheme": "Segment"
              },
              "dependsOn": [
                "[concat('Microsoft.ApiManagement/service/', variables('apiManagementServiceName'))]"
              ]

然后其他到apis

                "apiVersion": "2018-01-01",
                "type": "apis",

                "properties": {
                    ....

                    "isCurrent": true,
                    "apiVersion": "v1",
                    "apiVersionSetId": "/api-version-sets/my-api-version-sets" 

您可以在路径、标题或查询字符串中指定 Azure ARM 门户上的版本。但旧的 azure API 管理门户不支持构建版本控制。您可以通过任何方式在 Web API URL 后缀中指定版本控制。

如果您有任何问题,请添加一些图片并描述您的问题。

Azure ARM 门户(新 APIM)

Azure APIM 门户(旧)

谢谢,因法兹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM