2016-09-15 14 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