什么是 Swagger、Swashbuckle 和 Swashbuckle UI

What is Swagger, Swashbuckle and Swashbuckle UI

这是我的理解:

此信息是否正确?如果没有,有人可以用简单的术语解释 Swagger、Swashbuckle 和 Swashbuckle UI 是什么意思吗?

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

Swagger is a notation/rules to write documentation. But why is it called a framework(Like angular/MVC)?

它可能被称为 "framework",因为它的目的是提供一种系统的方法来标记 OpenAPI 规范下任何 RESTful 服务的接口。这对开发人员来说是一件大事,因为规范由著名的 Linux 基金会下的 Open API Initiative 监督。

Swashbuckle is a program(javascript ?) that generates the documentation(based on Swagger rules)

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

Swagger UI displays the documentation. It uses Swashbuckle to do this.

是的,它确实以一种友好的人性化方式显示了 Swagger 规范。但是,Swashbuckle 不是这个的必要组件。除了我刚才所说的,它们是完全互斥的。

Also what do I lose as an API developer, if I do not use this.

这现在进入了意见领域,但我会尽力objective。我使用 Swashbuckle 来协助为我的应用程序 API 创建客户端。在通过实施学习曲线(并不多)之后,这个包为我节省了大量自己编写客户端的时间。编写 Web 客户端对于小型应用程序来说是一件微不足道的事情,但企业级应用程序的复杂性有不断增长 and/or 变化的趋势,因此让这些客户端的 creation/updating 完全自动化是件好事。

简而言之,如果您决定不使用它,则必须采用 API 客户端生成的替代方法或自己 write/update 客户端。如果您只开发后端,这对您来说可能完全没有意义,但它肯定会帮助负责创建将使用您的 API 服务的客户端应用程序的人。

希望这些回答对您有所帮助。干杯!