当前位置: 首页 > 知识库问答 >
问题:

模块化:将swagger ui与Swashback分离

巫新知
2023-03-14

我最近提议使用swashuckle将swagger集成到我们的Web API中,以便在内部向我们的工程师公开API功能。对于我们的目的,swagger在生产中没有意义,因为API是后端的......作为一个企业环境,API的数量很大,我可以预见两个主要问题:

程序集的大小约为2.6MB:假设数百个集成了swahbuckle的API构建突然之间,我们所有应用程序的大小都增加了4.5倍。不合理的打击。看着这个虚张声势的皮带扣。核心我怀疑大部分的大小是从招摇用户界面被捆绑。是否有可能将swagger ui从Swashback中分离出来,而是允许通过单独的nuget包添加swagger ui。

捆绑式用户界面中的每个api都有自己的自大用户界面实例。对自大用户界面进行的任何定制对其他项目都没有影响,除非对每个api项目也进行更改,从而增加工作量并减少可运维性机会。我们集中托管自大用户界面并进行定制,以允许开发人员在本地尝试他们的自大实现(localhost),因此被集成自大用户界面的swashuckle极大地影响,并且如果可以选择通过单独的nuget包拉自大用户界面会更好。

是否有任何措施可以解决上述问题,或者我们是否有最好的机会以维护为代价,简单地放弃并继续前进?

共有1个答案

佘修为
2023-03-14

在nuget,这是相当大的,正如你所提到的Swash扣是作为一个单一的组件

它实际上捆绑了所有必要的库,用于从程序集中呈现Swagger UI(例如jQuery、主干…)

直接从Github下载Swashbuckle使您可以在不嵌入任何库的情况下构建它,并最终在Swashbuckle中结束。Core/bin文件夹为130kb文件,比nuget版本小20倍。

Swashback的所有功能都保持不变(当然,Swagger UI的呈现会被完全破坏,但如果不在SwaggerConfig.cs文件中使用启用的SwaggerUI,这不是问题)

在这种情况下,您只需要获得最新版本的Swashback Github回购,而无需分叉(因为它直接从中工作),这意味着无需维护。

 类似资料:
  • 页面模块化 规范 在具体谈论规范的之前,可以下去查看下各大网络公司的前端开发规范(Developemnt Style Guide)例如谷歌,Facebook 或者 Dropbox。从而更好的理解开发规范在实际应用中和多人协作中的重要性。 不同开发者在开发过程中使用不同的代码风格会直接的提升在之后的开发和维护的成本和难度,对前端开发来说更是尤为突出。这时使用代码规范来约束开发者的编码风格就可以大体解

  • 7.2.5 类与模块化 我们在第 4 章讨论过模块化编程的思想。对于复杂程序,通常需要用分解的方法将程序 划分成若干模块,使每个模块仅针对有限的数据执行有限的操作。模块化能够使复杂程序的 设计更加可控。 对复杂程序一般有两种分解方法:功能分解和数据分解。功能分解是面向过程编程的基 础,依赖于子程序(如函数)概念,以过程为中心来建立功能模块;数据分解则是面向对象 编程的基础,依赖于类的概念,以数据为

  • SwaggerUI 汉化版;修改了部分样式;结合SpringFox SpringFox-Swagger-UI实现API管理

  • CommonJS AMD CMD UMD ES Modules

  • 1. required 引入模块。返回模块通过 module.exports 或 exports 暴露的接口。 参数 名称 类型 说明 path string 需要引入模块文件相对于当前文件的相对路径,或npm模块名,或npm模块路径。不支持绝对路径 示例代码 // common.js function sayHello(name) { console.log(`Hello ${name} !

  • 文件作用域 在.js 文件中声明的变量和方法只在当前文件中有效;不同的文件中可以声明相同名字的变量和方法。 通过全局函数 getApp() 可以获取全局的应用实例,如果需要全局的数据可以在 App() 中设置,如: // app.js App({ globalData: "cortana" }) 模块化 可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 modu