2016-09-15 13 views
2

我刚刚安装了WSO2 2.0.0(据我所知,这是v1.9.0之后的版本,而不是破坏兼容版本)。我在Windows上通过Firefox 40.0.2使用它。WSO2 API导入没有做任何事(来自Swagger)

当我尝试通过添加新的API“我有一个现有的API”菜单,无论我做什么,它总是打开一个空设计API屏幕:https://localhost:9443/publisher/design

在此屏幕上,当我尝试导入API(swagger文件或swagger URL),它只是在没有提示任何错误的情况下不做任何事情。我的swagger文件尊重Swagger API 2.0规范,并且与生产中已经使用的API相对应。

我应该怎么做才能获得有关此API导入的至少一条有用的错误消息? (如果它安装了其他版本的WSO2,这对我来说是一个有效的答案)。

这里是扬鞭文件我尝试导入:

{ 
    "apiVersion":"2.0", 
    "swaggerVersion":"1.2", 
    "basePath":"/ValoConso/rest", 
    "resourcePath":"/valoConsoWebService", 
    "apis":[ 
     { 
     "path":"/valoConsoElec", 
     "operations":[ 
      { 
       "method":"POST", 
       (...) 
      } 
     ] 
     } 
    ], 
    "models":{ 
     (...) 
    } 
} 
+0

能否请您检查您是否得到任何浏览器控制台错误?例如:“Uncaught TypeError:无法将undefined或null转换为对象” – Malintha

+0

在Firefox中,我没有错误,只有关于SHA-1证书的警告。我刚刚在Chrome中尝试过,并且我提供了来自此js行的消息:“if(Object.keys(this.api_doc.paths).length == 0)”in api-design.js。那么它是来自WSO2的已知错误? – Tristan

+0

此外,当我尝试导入建议的示例:http://petstore.swagger.io/v2/swagger.json时,导入按钮变为“保存”,然后一切冻结(控制台中没有错误)。我应该只是抛出这个太小而无法使用的2.0.0版本吗? – Tristan

回答

0

看来你要导入的文件招摇是招摇1.2版(“swaggerVersion”:“1.2”)。从API Manager 1.9开始,我们应该使用swagger 2.0兼容的定义。

您可以使用http://editor.swagger.io/#/根据2.0规范验证您的swagger定义。请按照2.0规范尝试转换,然后导入到API Manager 2.0。

看到一些有用的资源:

[1]扬鞭2.0样本:https://github.com/OAI/OpenAPI-Specification/tree/master/examples/v2.0/json

[2]扬鞭1.2 - > 2.0的迁移指南:https://github.com/OAI/OpenAPI-Specification/wiki/swagger-1.2-to-2.0-migration-guide

+1

好的谢谢,这是有用的答案,但为什么你的工具不能在弹出的错误消息中说出来,而不是做这个沉默的nullPointerException(或JS等价物)?我的意思是,如果你一开始并没有考虑增加健壮性,每次你得到一些反馈时,你是在想它吗? – Tristan

+0

感谢您的反馈。如果可以的话,请在https://wso2.org/jira/browse/APIMANAGER下创建一个问题,以便跟踪并在将来的版本中修复。 – Malintha