2017-12-18 14 views
0

次のOpenAPI定義をAzure API Managementに正常にインポートできます。OpenAPI定義をインポートする際に、「スキーマ」が「応答」オブジェクトから消えてしまうのはなぜですか?

私はOpenAPIの定義をエクスポートするときしかし、「スキーマ」の名前は、「応答」オブジェクトから削除されました。その結果、私のポータルの開発者は、この操作のスキーマや例は表示されません。

APIの定義は有効で、the official editorに追加すると正しく機能します。

スキーマが削除されないようにするにはどうすればよいですか?

{ 
    "swagger": "2.0", 
    "info": { 
    "title": "Foo", 
    "description": "Foo", 
    "version": "1" 
    }, 
    "host": "example.org", 
    "schemes": [ 
    "https" 
    ], 
    "paths": { 
    "/foo": { 
     "get": { 
     "summary": "List all foo.", 
     "responses": { 
      "200": { 
      "description": "Success.", 
      "schema": { 
       "$ref": "#/definitions/Foo" 
      } 
      } 
     } 
     } 
    } 
    }, 
    "definitions": { 
    "Foo": { 
     "type": "object", 
     "properties": { 
     "example": { 
      "type": "string", 
      "description": "An example." 
     } 
     } 
    } 
    } 
} 

答えて

0

この問題は、定義は、ルートオブジェクトのいずれかで、または操作対象で、名前を「生成」を欠いているときに発生するようです。

たとえば、次の定義を正常にインポートしてから、「スキーマ」を取り除かずにエクスポートする必要があります。 「生成」名は「スキーム」及び「パス」

{ 
    "swagger": "2.0", 
    "info": { 
    "title": "Foo", 
    "description": "Foo", 
    "version": "1" 
    }, 
    "host": "example.org", 
    "schemes": [ 
    "https" 
    ], 
    "produces": ["application/json"] 
    "paths": { 
    "/foo": { 
     "get": { 
     "summary": "List all foo.", 
     "responses": { 
      "200": { 
      "description": "Success.", 
      "schema": { 
       "$ref": "#/definitions/Foo" 
      } 
      } 
     } 
     } 
    } 
    }, 
    "definitions": { 
    "Foo": { 
     "type": "object", 
     "properties": { 
     "example": { 
      "type": "string", 
      "description": "An example." 
     } 
     } 
    } 
    } 
} 
間に、ルート・オブジェクトに追加されていることに注意してください
関連する問題