2016-10-04 71 views
1

我试图从Swagger(http://petstore.swagger.io/v2/swagger.json)导入PetStore模式,但导致以下错误。 你能帮我理解这里的问题吗?AWS API网关:导入Swagger API模式的问题

错误:

Your API was not imported due to errors in the Swagger file. 
Unable to create model for 'Order': Invalid model specified: Validation Result: warnings : [], errors : [Invalid model schema specified] 
Unable to create model for 'User': Invalid model specified: Validation Result: warnings : [], errors : [Invalid model schema specified] 
Unable to create model for 'Category': Invalid model specified: Validation Result: warnings : [], errors : [Invalid model schema specified] 
Unable to create model for 'Tag': Invalid model specified: Validation Result: warnings : [], errors : [Invalid model schema specified] 
Unable to put method 'POST' on resource at path '/pet': Invalid model name specified: null 
Unable to put method 'PUT' on resource at path '/pet': Invalid model name specified: null 
Unable to put method 'POST' on resource at path '/store/order': Invalid model name specified: null 
Unable to put method 'POST' on resource at path '/user': Invalid model name specified: null 
Unable to put method 'PUT' on resource at path '/user/{username}': Invalid model name specified: null 
Additionally, these warnings were found: 
Unsupported security definition type 'oauth2' for 'petstore_auth'. Ignoring. 
API Key security definition 'api_key' has unexpected name or location. Ignoring. 
Unable to insert model 'Pet' due to an unsatisfied schema reference. 
Reference to model 'Pet' not found. Ignoring. 
Reference to model 'Pet' not found. Ignoring. 
Reference to model 'Pet' not found. Ignoring. 
Reference to model 'Pet' in 200 response to method 'GET /pet/findByStatus' not found. Ignoring. 
Reference to model 'Pet' not found. Ignoring. 
Reference to model 'Pet' in 200 response to method 'GET /pet/findByTags' not found. Ignoring. 
Reference to model 'Pet' not found. Ignoring. 
Invalid format for model application/json for method GET 
Parameter type formData for parameter name not supported. Ignoring. 
Parameter type formData for parameter status not supported. Ignoring. 
Parameter type formData for parameter additionalMetadata not supported. Ignoring. 
Parameter type formData for parameter file not supported. Ignoring. 
Unsupported model type 'MapProperty' in 200 response to method 'GET /store/inventory'. Ignoring. 
Reference to model 'Order' not found. Ignoring. 
Reference to model 'Order' not found. Ignoring. 
Invalid format for model application/json for method GET 
Reference to model 'User' not found. Ignoring. 
Reference to model 'User' not found. Ignoring. 
Request schema for 'POST /user/createWithArray' has a reference to unknown model 'User'. Ignoring. 
API Gateway does not support Swagger's 'default' method response (found on 'POST /user/createWithArray') 
Reference to model 'User' not found. Ignoring. 
Request schema for 'POST /user/createWithList' has a reference to unknown model 'User'. Ignoring. 
API Gateway does not support Swagger's 'default' method response (found on 'POST /user/createWithList') 
Unsupported model type 'StringProperty' in 200 response to method 'GET /user/login'. Ignoring. 
API Gateway does not support Swagger's 'default' method response (found on 'GET /user/logout') 
Reference to model 'User' not found. Ignoring. 
Invalid format for model application/json for method GET 
Reference to model 'User' not found. Ignoring. 

回答

1

感谢您报告这一点。尽管API网关努力支持完整的swagger 2.0规范,但仍存在API网关强制执行的限制,可能会导致一些有效的swagger文件失败。

这已经在这里详细讨论在AWS论坛:https://forums.aws.amazon.com/message.jspa?messageID=720511

希望这澄清。

+0

有些工具可以将模式转换为与AWS兼容,例如swaggerhub会在部署到网关之前禁用不支持的功能。 – fehguy

+0

@fehguy我正在尝试swaggerhub,我已经导入了我的swagger文件,但我无法确定如何导出禁用AWS不支持的功能。 – loretoparisi

0

我得到了很多类似这样的错误,将swagger定义导入到aws api网关中。他们都走了,当我加入杰克逊JSON定义我的模型我的API e.g返回:

@JsonProperty("id") 
private String id; 

@JsonProperty("target") 
private Long target; 

加入JsonProperty全部解决了我所有的进口问题在我的模型中的字段。