2015-09-23 53 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回购的最新版本,不需要分叉(因为它可以直接使用),这意味着无需维护