最近作的項目使用WebApi
,採起先後端分離的方式,後臺提供API
接口給前端開發人員。這個過程當中遇到一個問題後臺開發人員怎麼提供接口說明文檔給前端開發人員,最初打算使用word
、Xmind思惟導圖
方式進行交流,實際操做中卻不多動手去寫。爲了解決這個問題,特地在博客園搜索了一下api
接口文檔生成的文章,引發我注意的有如下兩種方案。html
Microsoft.AspNet.WebApi.HelpPage
Swagger(絲襪哥)
可是在使用過程當中微軟自帶的沒有Swagger
直觀,所以採用了第二種方案Swagger
。前端
在使用swagger的過程當中,產生了一些小問題,例如:漢化
、查詢
、控制器備註
。
在博客園當中找到了相關的解決方式,可是漢化、控制器備註會產生二次請求的問題,尤爲在接口比較多的狀況下,仍是比較慢的。所以產生了修改swagger-ui
和Swashbuckle
源碼的念頭。git
SwashbuckleEx
nuget包SwashbuckleEx
和SwashbuckleEx.Core
這兩個包
github
完成上面2部運行項目,能夠看到接口描述已經生成,瀏覽地址http://xxxx/swagger
。可是沒有接口的註釋,下面添加接口註釋。web
注:若是實體與Api庫分開,那麼須要在實體庫也勾選上生成xml文件,並設置文件名稱(默認名稱便可)。後端
SwaggerConfig.cs
文件c.SingleApiVersion("v1", "xxx"); c.IncludeXmlComments(string.Format("{0}/bin/xxx.Api.XML", AppDomain.CurrentDomain.BaseDirectory));
給接口添加註釋,便可看到參數與方法描述了。api
Web.config
文件有園友提出使用Nuget包後,展現是空的,所以看了下,須要配置一下如下的內容便可。前後端分離
<system.webServer> <modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule" /> </modules> </system.webServer>
Github:https://github.com/jianxuanbing/SwashbuckleEx.git優化
修改Swashbuckle
源碼過程當中,踩的坑仍是比較多的,這個後續開一篇文章進行說明實現上述的功能。
有了漢化、控制器註釋、接口數量統計、查詢,加快的先後端開發的對接。ui