什么是Swagger,Swashbuckle和Swashbuckle UI

时间:2017-04-16 20:13:57

标签: swagger swagger-ui swashbuckle openapi.net

这是我的理解:

  • Swagger是编写文档的符号/规则。但为什么它被称为框架(如Angular / MVC)?
  • Swashbuckle是一个生成文档的程序(JavaScript?)(基于Swagger规则)。
  • Swagger UI显示文档。它使用Swashbuckle来做到这一点。

这些信息是否正确?如果没有,有人能用简单的术语解释什么是Swagger,Swashbuckle和Swashbuckle UI意味着什么?

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

1 个答案:

答案 0 :(得分:24)

  

Swagger是编写文档的符号/规则。但为什么它被称为框架(如angular / MVC)?

它可能被称为“框架”,因为它的目的是提供一种系统的方法来记录OpenAPI规范下任何RESTful服务的接口。这对开发人员来说是一个大问题,因为规范是由着名的Linux基金会下的Open API Initiative监督的。

  

Swashbuckle是一个生成文档的程序(javascript?)(基于Swagger规则)

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

  

Swagger UI显示文档。它使用Swashbuckle来做到这一点。

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

  

如果我不使用它,那么我作为API开发人员应该放松一下。

现在进入意见领域,但我会尽力客观。我使用Swashbuckle来协助为我的应用程序API创建客户端。在超越实施学习曲线(这并不多)之后,这个包给我节省了很多时间来自己编写客户端。编写Web客户端对于小型应用程序来说是一件微不足道的事情,但企业级应用程序倾向于保持增长和/或复杂性的变化,因此将这些客户端的创建/更新完全自动化是件好事。

简而言之,如果您决定不使用它,您必须采用另一种API客户端生成方法,或者自己编写/更新客户端。如果您只是在开发后端,这对您来说可能毫无意义,但它肯定会帮助负责创建将使用您的API服务的客户端应用程序。

我希望这些答案有所帮助。干杯!