问题描述

是否可以将Swagger 的API定义导入导Azure API Management中? 

 

操作步骤

是的,可以通过APIM门户导入单个的API Swagger定义文件。具体步骤如下:

第一步:APIM实例下点击API,然后点击Add API,选择OpenAPI,如下图所示

【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中_APIM导入Swagger文件

 

第二步:点击Full,然后点击Select a file,在本地选择一个定义好的Swagger API json 文件(如:swaggerTest.json),添加相应信息后创建,就可以生成API。

【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中_microsoft_02

PS: 可在 Swagger Editor: ​​https://editor.swagger.io/​​ 站点生产Swagger文件及编辑。

第三步:生成的API 如下图所示:

【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中_json_03

 

那是否可以可以批量导入多个Swagger API定义呢?目前门户上面是不支持的,但可以通过在Powershell脚本的方式导入,参考例子:​​https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/import-azapimanagementapi?view=azps-6.0.0#example-2--import-an-api-from-a-swagger-file​

$ApiMgmtContext = New-AzApiManagementContext -ResourceGroupName "Api-Default-WestUS" -ServiceName "contoso"
#API 1
Import-AzApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationPath "C:\contoso\specifications\echoapi1.swagger" -Path "apis1"
#API 2
Import-AzApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationPath "C:\contoso\specifications\echoapi2.swagger" -Path "apis2"
#API 3
Import-AzApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationPath "C:\contoso\specifications\echoapi3.swagger" -Path "apis3"

 

参考文档

教程:导入和发布第一个 API : ​​https://docs.azure.cn/zh-cn/api-management/import-and-publish​

Swagger Editor: ​​https://editor.swagger.io/​

Import-AzApiManagementApi : ​​https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/import-azapimanagementapi?view=azps-6.0.0#syntax​

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!