什么是 Swagger,它与 OData 相关吗?

What is Swagger and does it relate to OData?

我熟悉 Microsoft 堆栈。我正在为我的一些 restful 服务使用 OData。最近我在 API 文档中遇到了 Swagger,我试图了解它与 OData 的关系。两者似乎都是 RESTful 规格。哪一个被广泛使用?

Swagger 记录 APIs 的规范。通过为您的 API 创建一个 swagger 文档,您可以将其传递给 Swagger UI 的一个实例,该实例以简洁、可读的格式呈现文档并提供调用您的 API 的工具.有关详细信息,请参阅 swagger.io 网站。

OData 是在 http 上创建 数据服务的规范,它定义了服务应该如何构建以及应该遵循什么模式.例如,使用 $top 指令提供数据集的前 n 个结果。 OData 目前是版本 4,但 v2 文档有 very good overview

Swashbuckle is a nuget package 用于 Microsoft 堆栈,根据检查您提供给塑造输出文档。

如果您希望 Swashbuckle 为您正在构建的 OData API 自动生成 swagger 文档,那么您可以使用 Swashbuckle.OData 为您提供此功能.

如果您使用的是 .NET Core,那么它会稍微复杂一些,但可以在 .NET Core Swagger OData sample 找到完整的示例。

OpenAPI是描述API的规范; Swagger 是 OpenAPI 标准的实现。您可以找到更多详细信息 here.

我希望这有助于消除任何困惑。