2015-09-23 103 views
4

我最近提出使用swashbuckle將swagger集成到我們的web-apis中,目的是向我們的工程師公開API內部功能。爲我們的目的swagger在生產中沒有意義,因爲apis是後端.....作爲一個企業環境,API的數量很大,我可以預見兩個主要問題:模塊化:從swashbuckle解開swagger-ui

程序集的大小是2.6MB:假設數百個apis搭配swahbuckle突然整合,所有應用的尺寸增加了4.5倍。無理打擊。看着swashbuckle.core,我懷疑大部分的尺寸是來自swagger-ui被捆綁的。是否有可能從swashbuckle中解壓swagger-ui,而是允許通過單獨的nuget包添加swagger-ui。

在swashbuckle中捆綁的swagger-ui讓每個api擁有自己的swagger-ui實例。對swagger-ui所做的任何定製都不會對其他項目產生影響,除非對每個api項目都進行了更改,從而增加了工作量並減少了可維​​護性機會。我們集中託管swagger-ui並進行定製,以允許開發人員在本地嘗試他們的swagger實現(localhost),所以受swashbuckle集成swagge-ui的影響很大,並且可以選擇通過swagger-ui一個單獨的nuget包可選。

是否有任何事情正在解決上述問題,或者是我們最好的機會,只需要維護它就可以分叉並前進?

回答

0

Swashbucklenuget中作爲單個裝配件提供,如您所提及的那樣非常大。

它實際上捆綁用於渲染揚鞭的UI所有必要的庫從組件內(例如jQuery的骨幹......)

下載Swashbuckle directly from Github爲您提供了可能性,構建它沒有任何庫嵌入並最終在Swashbuckle.Core/Bin文件夾中作爲130kb文件,比nuget版本小20倍。

Swashbuckle的所有屬性保持不變(的渲染揚鞭的UI,其被徹底打破的,當然APPART,但如果不使用EnableSwaggerUiSwaggerConfig.cs文件不是一個問題)

在這種情況下,你只需要獲得Github回購的最新版本,不需要分叉(因爲它可以直接使用),這意味着無需維護