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

2024-02-05

我熟悉 Microsoft 堆栈。我正在使用 OData 来提供一些宁静的服务。最近,我遇到了 Swagger API 文档,我试图了解它与 OData 的关系。两者看起来都是RESTful规范。哪一种被广泛使用?


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

OData是用于创建的规范基于http的数据服务,它定义了服务应该如何构建以及它应该遵循什么模式。例如,使用 $top 指令提供数据集的前 n 个结果。 OData 目前为版本 4,但 v2 文档有非常好的概述 http://www.odata.org/documentation/odata-version-2-0/uri-conventions/.

虚张声势是一个 nuget 包 https://github.com/domaindrivendev/Swashbuckle对于 Microsoft 堆栈来说自动为您的 API 生成 swagger 文档,基于检查您提供的代码和其他元数据来塑造输出文档。

如果您希望 Swashbuckle 自动为您正在构建的 OData API 生成 swagger 文档,那么您可以使用虚张声势的OData https://github.com/rbeauchamp/Swashbuckle.OData为您提供这个。

如果您使用 .NET Core,那么它会变得有点复杂,但可以在以下位置找到完整的示例.NET Core Swagger OData 示例 https://github.com/Microsoft/aspnet-api-versioning/tree/master/samples/aspnetcore/SwaggerODataSample.

OpenAPI是描述 API 的规范; Swagger 是OpenAPI标准。您可以找到更多详细信息here https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swagger 是什么?它与 OData 相关吗? 的相关文章

  • SharePoint 2013 REST API odata $filter 忽略 Unicode 字符,例如德语元音变音 äöü

    我正在尝试将 SharePoint 2013 REST API odata 与 unicode 字符 例如元音变音 结合使用 select Title 2CID filter substringof 28 27hello 20w F6rld
  • Swagger / Open API 2.0 我可以声明通用响应标头吗?

    是否可以声明一个自定义响应标头 该标头将出现在所有响应中 而无需将其复制到每个响应结构中 这在 OpenAPI 3 0 中有所改进 您现在可以在全局中定义通用标头components headers部分然后 ref这些定义而不是重复内联定义
  • Springfox 类参数已弃用

    在Springfox 3 0中 springfox documentation service Parameter已弃用 是否有提供参数及其构建器的更新方法 以及如何提供其default value 首先 使用RequestParamete
  • 是否有任何 AngularJS + ASP.NET-WebApi + OData + Breeze.js + Typescript 示例,或者有人尝试将这些示例结合起来

    我试图结合这些技术 但没有什么好的结果 因为实体框架元数据不会被breeze js消耗 即使是所有设置的配置 这也是一个有点棘手的情况 实际上没有这样的例子 所以这个是我的示例代码 它不能正常工作 但不知何故 也许有人会发现我的错误 并最终
  • 将 XSD 导入 OpenAPI

    我的 XSD 文件中有一些模型定义 我需要从 OpenApi 定义中引用这些模型 由于文件太大 手动重新建模是不可能的 我需要将其放入构建系统中 这样如果 XSD 发生更改 我可以为 OpenApi 重新生成模型 架构 我尝试过并且几乎有效
  • 无法在 Open API UI 中显示自定义标头

    使用 Open API 3 时如何设置自定义标头 我正在使用 Spring Boot springdoc openapi ui 示例 在此示例中 我希望在请求中传递不同的标头 以下配置不显示选择客户标题的选项 我还需要改变什么 Bean p
  • 如何在 Spring Boot 3 上运行 Swagger 3

    使用带有 Java17 和 Spring Boot 3 0 0 的全新 Spring Initialzr 以及 Springfox Swagger 3 的 pom xml 的额外补充 我一生都无法让 Swagger 页面工作 相反 我得到了
  • 参考OpenAPI 3.0中的self

    我在 OpenAPI 3 0 中有一个数据模型定义 使用 SwaggerHub 来显示 UI 我希望模型的属性之一是related 它是同一模型的属性数组 Foo properties title type string related t
  • 如何在 OpenAPI 3.0 中全局设置 Accept header?

    我通过 SwaggerHub 设置了新的 OpenAPI 是否有一个选项可以强制执行某些操作Accept全局标题 我已经设置了Content Type关于回应 openapi 3 0 0 paths test path get respon
  • Swagger 将 IFormFile 参数列为“对象”类型

    我有一个控制器 它请求一个包含 IFormFile 作为其属性之一的模型 对于请求描述 Swagger UI 我使用 Swashbuckle 和 OpenApi 3 0 for NET Core 将文件属性的类型列出为类型对象 有没有办法让
  • odata总记录可以在不获取的情况下找到吗?

    我正在创建分页并每页获取 10 条 JSON 记录 var coursemodel query Skip skip Take take ToList 我需要在网页上显示数据库中可用记录的总数 例如 您正在查看 20 到 30 个 x 其中
  • 使用 ODataQueryOptions 扩展导航属性

    我正在构建一个 OData v 4 Web 服务 该服务必须公开从另一个第 3 方 Web 源检索的数据 因此该数据与 LINQ 世界中的任何内容都不相同 即 没有 IQueryable 没有 Context 什么都没有 解决方法似乎是手动
  • 如何在 swagger 中提供 XML 参数示例

    我在用Swashbuckle 5 6 0 and Swashbuckle Examples 3 5 1记录 WebApi2 项目 我有一个使用 XML 正文并返回文本响应的操作 我希望文档包含 XML 输入的示例 例如
  • OData 中的过滤器和集合

    这与 Azure 最近推出的搜索服务有关 该服务目前处于预览状态 我试图弄清楚如何将 OData 的过滤器与集合一起使用 我知道我可以这样做 filter Products any p p eq WidgetA 它将按 WidgetA 过滤
  • 使用/从 Springfox 迁移到 springdoc-openapi 有什么优势吗?

    为了在 SpringBoot 2 7 中启用 Swagger 选择 springdoc openapi 相对于 Springfox 的优点 缺点是什么 这可能被认为是基于意见的 但实际上有事实支持使用 springdoc 而不是 Sprin
  • 如何在Swagger open api 3.0中定义常量字符串[重复]

    这个问题在这里已经有答案了 如何在 swagger open api 3 0 中定义常量字符串变量 如果我定义枚举 它将如下所示 StatusCode title StatusCode enum success fail type stri
  • Swagger UI 上的服务器响应为空

    我有一个与 Swagger UI 集成的 REST API 但是 当我尝试从 Swagger UI 执行请求时 该界面仅向我显示curl 命令 但不提供服务器响应 从命令行运行时 curl 命令会返回预期的响应 但 UI 本身中没有显示任何
  • 为什么 $count=true 的 OData 查询返回一个对象?

    我试图弄清楚如何正确支持返回 OData API 中 已过滤的 数据集中的项目数 我的理解是添加 count true查询字符串的参数应该允许这样做 现在 基于官方文档中教程的示例 https www odata org getting s
  • 如何使用 OData 在单个 POST 请求中正确创建和链接一对一关系

    在 OData Operations 文档的第 2 4 节第四段中 它写道 在使用 POST 创建实体时 也可以在同一请求中创建链接 但是 我在尝试完成这项工作时遇到了麻烦 在创建时就多对多链接提出了类似的问题 看起来如果没有批量请求 就不
  • 一个 Swagger 文件中包含多个 API 文档

    是否可以有多个 以某种方式分离的 REST API 文档 但只能在一个 swagger yaml 文件中 或者swagger yaml可以只包含一份API文档吗 因为我有 2 个由我开发的 REST API 并且我想要一个通用的 swagg

随机推荐

  • 链接静态库,共享另一个静态库

    我目前有一个用于非常大的代码库的 Xcode 项目 我将其称为X计划 我将其分为一堆子项目 项目A B C 到目前为止 每个项目都可以自行编译 效果很好 它们都生成静态库 项目B and 项目C依赖于生成的静态库项目A为了建造 我有另一个
  • 在 Golang 中导入包的本地更改而不推送代码

    我现在正在学习 Golang 而且还是个新手 我有一个关于包裹的问题 考虑以下场景 假设我有一个包裹github com ilatif A我正在其中导入另一个包github com ilatif B like import github c
  • 收到推送通知时添加新通知(不替换之前的通知)

    我在我的应用程序中使用推送通知 我需要在发送推送通知时显示通知 如果我发送另一个通知 没有清除之前的通知 它将替换旧的通知 这是我使用的代码 NotificationManager mNotificationManager Notifica
  • 谷歌应用程序脚本中的 CopyTo 将无法完成超过 1000 行的执行

    I am using originalRange copyTo rangeToCopyTo to basically pull down functions for the number of rows of data I have Cop
  • PHP - 我们应该在会话中包含哪些数据?

    这是一个初学者的问题 在网站中 会话中应该或不应该包含什么类型的数据 我了解我不应包含任何需要保证安全的信息 我对编程最佳实践更感兴趣 例如 可以在会话中包含一些数据 否则这些数据将作为依赖项注入从一个页面发送到另一个页面 这不是相当于创建
  • 如何在 Python 中将 CIDR 前缀转换为点分四组网络掩码?

    如何在 Python 中将 CIDR 前缀转换为点分四组网络掩码 例如 如果前缀是12我需要返回255 240 0 0 这是一个较轻松的解决方案 没有模块依赖项 netmask join str 0xffffffff lt lt 32 le
  • 如何将指针设置到第零位置?

    据我所知 在预处理阶段 代码中所有出现的 NULL 都会被 0 替换 然后在编译期间 指针上下文中出现的所有 0 都将替换为在该机器上表示 NULL 的适当值 因此 编译器必须知道该特定机器的 NULL 值 现在 这意味着每当我在指针上下文
  • R 中的合并命令

    我一直在使用 R 中的合并命令 并试图找出如何使用 SUFFIX 参数 在线文档并没有很好地解释它 我想做的是导入一些 csv 文件 data1 lt read csv fileA header T data2 lt read csv fi
  • 我想一次滚动多个回收器视图如何实现

    我想滚动多个RecyclerView一次如何实现该 Exp 我有 3RecyclerView水平方向 当我第一次滚动时RecyclerView那么第二个和第三个也应该滚动怎么办 答案很简单 你必须从一个回收视图获取滚动反馈并将其传递给其他回
  • python中的return和break有什么区别?

    python中的return和break有什么区别 请解释一下它们在循环和函数中到底做了什么 谢谢 break用于提前结束循环 whilereturn是用于将返回值传递回函数调用者的关键字 如果不带参数使用它 它只会结束函数并返回到之前执行
  • Angular 6:从后端服务器获取文件对象后下载文件

    我有一个结构为 type Buffer data Array 702549 的文件对象类型 我需要在 Angular 6 中做什么才能在浏览器中下载此文件 我从这个函数得到我的回应 getMarketingProposalById id s
  • 查找数组中出现次数最多的第 N 个数字

    Find the nth most frequent number in array There is no limit on the range of the numbers 我想我们可以 i 使用 C 中的映射存储每个元素的出现情况 i
  • 从 Facelets 调用 servlet 的正确方法?

    使用带有提交按钮的表单从 Facelets 文件调用 servlet 的正确方法是什么 是否需要特定表格 只需使用纯 HTML
  • 我想使用 jquery 操作 iframe 内的 html

    我想我可以通过将 jQuery 函数的上下文设置为 iframe 的文档来做到这一点 如下所示 function document ready some selector frames nameOfMyIframe document doS
  • 如何将字符串转换为长整型而不丢失前导零[重复]

    这个问题在这里已经有答案了 在我的网络服务方法中 我有一个输入类型Long 我应该在左边添加两个零 所以我将其转换为String 我连接了两个零 然后我应该再次转换为Long 我发现java中的Long类型忽略左零 如何在 Long 值中保
  • Android MLKit - 执行 Firebase ML 任务时发生内部错误

    您好 我有一个在 Android 应用程序中使用的自定义模型 但是当我尝试运行它时 会引发 MLkit 异常 所述错误的日志输出如下 Internal error has occurred when executing Firebase M
  • 什么是 SAPI?什么时候会使用它?

    我最近一直在学习 PHP 中的错误处理 并遇到了error log 功能 http docs php net manual en function error log php 在 PHP 手册中 它讨论了所有错误日志类型 我理解所有这些类型
  • 如何异步使用DataAdapter.Fill()?

    我有一个 DataAdapter 正在填充数据集中的 5 个数据表 SqlDataAdapter da new SqlDataAdapter Select from testTable con da Fill ds 0 numberOfRo
  • 如何在嵌入式 Linux Raspberry Pi 上安装 GCC 和/或 apt

    我在树莓派 用于比特币矿工 上有一个预配置的 Linux 发行版 问题是这个发行版非常小 只有 busybox 用于基本命令 它没有包管理器 甚至没有 gcc 编译器 所以我的目标是在上面安装一个 gcc 编译器 这样我就可以进一步安装其他
  • Swagger 是什么?它与 OData 相关吗?

    我熟悉 Microsoft 堆栈 我正在使用 OData 来提供一些宁静的服务 最近 我遇到了 Swagger API 文档 我试图了解它与 OData 的关系 两者看起来都是RESTful规范 哪一种被广泛使用 Swagger是一个规范记