Swagger、Swashbuckle和Swashbuckle UI是什么?

59
这是我的理解:
  • Swagger是一种编写文档的标记/规则。但为什么它被称为框架(像Angular/MVC)?
  • Swashbuckle是一个程序(JavaScript?),用于根据Swagger规则生成文档。
  • Swagger UI显示文档。它使用Swashbuckle来完成此操作。

这些信息正确吗?如果不正确,有人可以简单地解释一下Swagger、Swashbuckle和Swagger UI的含义吗?

作为API开发人员,如果我不使用这个,我会失去什么?


1
你有检查那些标签的标签信息吗?它们应该提供你所寻找的描述。 - Filburt
2
谢谢,这很有帮助,但这是一个描述并没有说明其功能的例子。例如:Swagger 是一个框架,Swashbuckle 也是一个框架。“框架”这个词太宽泛了,我期望得到更实际的解释。 - Blue Clouds
阅读描述的其余部分,超过“框架”一词,是的,它们会告诉你它们的作用。在swashbuckle的情况下,它说“将Swagger和Swagger-ui添加到ASP.Net Web API项目中”。 - user47589
1个回答

82

Swagger是一种撰写文档规范。但为什么它被称为一个框架(像angular/MVC)呢?

它可能被称为“框架”,因为其旨在提供一种系统化的方式来记录符合OpenAPI规范的任何RESTful服务的接口。这对开发人员来说很重要,因为该规范由备受好评的Linux基金会下的Open API计划监控。

Swashbuckle是生成(基于Swagger规范)文档的程序(JavaScript?)

Swashbuckle更像是一个包(或库),您可以在.NET Web API项目中使用它。它的目的,就像您正确指出的那样,是为您的项目生成Swagger规范。此外,Swagger UI包含在Swashbuckle中,因此如果您在.NET中开发API,则这是一个非常不错的一站式套餐。它几乎完全用C#编写,而不是JavaScript。

Swagger UI显示文档。它使用Swashbuckle来实现。

是的,它确实以一种友好的方式显示Swagger规范。但是,Swashbuckle并不是必需的组件。它们除了我之前说的之外,完全是相互独立的。

那么,如果我不使用它,作为API开发人员,我会失去什么。

这现在已经涉及到观点的领域,但我会尝试客观地看待它。我使用Swashbuckle来帮助创建应用程序API的客户端。经过实现学习曲线(并不多),使用此包为我节省了编写客户端的时间。对于小型应用程序编写Web客户端是微不足道的事情,但是企业级应用程序往往会在复杂性上保持增长和/或变化,因此自动创建/更新这些客户端非常方便。

简而言之,如果你决定不使用它,你必须要么采用另一种API客户端生成的方法,要么自己编写/更新客户端。 如果你只是开发后端,那么这对你来说可能是完全无意义的,但它肯定会帮助负责创建将消耗你的API服务的客户端应用程序的人员。
我希望这些答案有所帮助。干杯!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接