1. 程式人生 > >swagger與springmvc整合異常記錄

swagger與springmvc整合異常記錄

這幾天在專案中加入swagger,專案用的是springmvc,spring用的4.1.1,和大家一樣,在網上找了個帖子,看了下步驟不復雜,就愉快的開始做了,但是,但是就是這樣華麗而順暢的入坑了,折騰好幾個小時,記錄下,希望能節省隊友時間。 問題一 描述:頁面提示Failed to load API definition,並且介面(http://127.0.0.1:8080/member/api-docs)可以返回json。
分析: 按照網上帖子愉快部署後,發現這個蛋疼問題,搜了下,還沒什麼答案,後面各種查資料,git上下載別人demo,對比介面地址 http://127.0.0.1:8080/member/api-docs返回值,發現返回的json和可用專案的差不多,並且json格式中有版本資訊1.2;然後看了swagger-ui和專案中不一樣,後面去swagger-ui上看了下相容性,地址https://github.com/swagger-api/swagger-ui
,明確的寫了,ui相容的版本,網上那些帖子略坑,都是說直接到git上下載後dist拷貝到webapps,從3.x版本ui已經不支援1.2的json格式了,所以最高下載2.2.10才支援springmvc,同時看了下swagger-springmvc這個包,2015年後就沒有更新了。所以只要是用springmvc這個包,服務端json必定不超過1.2,所以ui版本只能選相容1.2版本的。 swagger-ui版本相容列表,地址
swagger-springmvc.jar包版本,最新的是2015年的1.0.2版本。
貼一個api-docs介面返回的json值 {"apiVersion":"1.0","swaggerVersion":"1.2","apis":[{"path":"/default/pay-controller","description":"Pay Controller","position":"0"},{"path":"/default/user","description":"使用者管理","position":"0"}],"authorizations":[],"info":{"title":"時光商店","description":"內部人員開發文件","termsOfServiceUrl":"本API為了解決安卓端與後臺連線問題","contact":"
[email protected]
","license":"無許可證","licenseUrl":"115.28.36.253:8080"}}
問題二 描述:跨域許可權問題,頁面提示Can't read from server. It may not have the appropriate access-control-origin settings. 結論:這個比較直觀,將瀏覽器位址列主機名改成和介面地址主機名一樣即可。

問題三 既然現在springmvc已經沒有更新的包了,哪這些新版本的swagger-ui給誰用。ok,你猜對了,給springboot,springfox這些用嘍。