问题描述
是否可以将Swagger 的API定义导入导Azure API Management中?
操作步骤
是的,可以通过APIM门户导入单个的API Swagger定义文件。具体步骤如下:
第一步:APIM实例下点击API,然后点击Add API,选择OpenAPI,如下图所示
第二步:点击Full,然后点击Select a file,在本地选择一个定义好的Swagger API json 文件(如:swaggerTest.json),添加相应信息后创建,就可以生成API。
PS: 可在 Swagger Editor: https://editor.swagger.io/ 站点生产Swagger文件及编辑。
第三步:生成的API 如下图所示:
那是否可以可以批量导入多个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