调用Azure API mgmt REST API以更新swagger API架构

时间:2017-11-17 12:58:42

标签: json rest api azure api-management

我尝试更新调用Azure API管理REST API的API架构,如下所示:

curl -X PUT -H "Content-Type: application/application/vnd.ms-azure-apim.swagger.definitions+json" -d @service-api.swagger.json  -H "Authorization: Bearer $TOKEN" https://management.azure.com/subscriptions/${subID}/resourceGroups/${groupName}/providers/Microsoft.ApiManagement/service/clientnetdev/apis/${apiID}/schemas/${schemaID}?api-version=2017-03-01

我没有得到API管理的任何回复。

.json文件采用适当的swagger格式,编辑器导出,并包含必要的声明:

  

API Management目前支持1.2和2.0版本的Swagger   进口文件。确保,即使Swagger 2.0   specification声明了host,basePath和scheme属性   可选,您的Swagger 2.0文档必须包含这些属性;   否则它不会被导入。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

请检查json swagger架构中的以下内容

  1. 在swagger文件中,在tags属性上添加schema属性。
  2. 
    
      "schemes" : {
    "https"
    }
    
    
    

    2.在具有POST类型的路径配置中,有一个名为parameters的属性集合。在参数数组中,应该只有一个属性为'in'的数据为'body'。

    
    
       "parameters" :  [{
    
    "in":"body"
    
    },
    //invalid
    {
    "in":"body"
    }]
    
    
    

    1. 在生成的swagger文件中,查询参数不具有参数定义。因此,请将参数定义添加到参数数组中。通过在属性中指定路径。
    2. 
      
      "parameters" : [{
      
      "in":"param"
      
      },
      {
      
      "in":"param"
      
      }]