问题标签 [openapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
184 浏览

swagger - Swagger/OpenAPI 多重安全要求和副作用?

我正在为 Swagger/OpenAPI 实现代码生成器。但是,我在实现安全要求时遇到了问题。这些要求被定义为对象列表。列表成员是替代(或),对象成员是与。例如:

这应该导致 (a && b) || (c && d)

但是,在实现这一点时,我遇到了实际安全要求有副作用的问题:

  • OAuth2 - 如果失败必须重定向
  • Basic – 必须发送 HTTP 401 Unauthorized 状态和 WWW-Authenticate 标头
  • ApiKey——随便

但是,既然有一个or你不能让第一次失败来设置这些副作用。似乎您需要先尝试所有组合,然后返回第一个并允许它设置标题/结果代码?

查看http://editor.swagger.io/上的生成器,我发现大多数生成器似乎都忽略了安全性,而 Java 生成器似乎and在组合列表中。在我的示例中,我看到a && b && c && d.

所以我的问题是:

  • 是否有正确实现 OpenAPI 安全性的生成器?
  • 如何处理这些副作用?
0 投票
1 回答
643 浏览

spring - _link 模型 - HATEOAS

我被要求将 HATEOAS 作为我们其余 API 的一部分来实现,这就是 Swagger 规范中定义响应的方式

relhref是有道理的,我可以找到这两个的很多例子,但我找不到任何动作。它是标准的一部分吗?我真的应该寄回去吗?

我正在使用 Spring hateoas 库,并且它肯定不支持操作。对此的任何指导都将是可观的。

谢谢。

0 投票
1 回答
75 浏览

c# - Web API 对象共享

我的对象有问题。

我曾经有两个几乎相同的对象,但一个有一些额外的字段,所以我将它们合并为一个。

现在我遇到的问题是,当我使用 swagger 编写 Web api 文档时,它会显示整个对象,但对于某些调用,我只想使用对象的一部分。

我的问题是,如果我有一个具有基本值的对象,是否可以让另一个对象使用基本对象作为起点/参考,我可以从中添加我需要的额外值?

0 投票
1 回答
1290 浏览

google-cloud-endpoints - 部署包含“文件”类型参数的端点时出错

我正在尝试部署一个包含type 参数的file简单端点。

我将gcloud service-management deploy命令与以下符合 openapi 的 yaml 一起使用:

但得到以下错误:

如果我将file参数取出,则成功部署端点。这是谷歌云端点限制还是有另一种定义方式?

0 投票
1 回答
1116 浏览

node.js - Google Cloud Endpoints - 方法不存在 - OpenAPI yaml 规范

我正在尝试使用 Google Cloud Endpoints 和 Google App Engine 设置 NodeJS REST API。我从GitHub克隆了官方示例项目,并使用Quickstart设置了 Google Cloud Endpoints 。开箱即用,它工作正常,但我尝试为 GET 请求添加另一个 API 端点/,但我在部署并发出请求后得到的响应如下:

预先配置的 API 工作正常,但只有我添加的新 API 不起作用。

我已经在我的 NodeJS 应用程序中正确配置了新端点(它在本地运行良好)。我添加的相应代码是:

我已将以下内容添加到我的openapi.yaml文件中:

从终端运行gcloud service-management deploy openapi.yaml以部署和配置 Google Cloud Endpoints 后,我得到了服务名称和服务配置 ID,我已将其替换为app.yaml,采用 QuickStart 指定的格式

YOUR-PROJECT-ID(这就是格式,我已经替换YOUR-CONFIG-ID了正确的格式)

我使用gcloud app deploy. 通过 Google App Engine 控制台,我可以看到应用程序正常运行。

然而, GET 方法/并没有被识别为有效端点,我得到了如上所述的响应。

我错过了什么吗?我对这个问题进行了很多搜索,但没有发现任何有用/类似的东西!

PS:添加的意思是我添加到相应的GitHub克隆文件中的代码



编辑: 我将 API 端点从更改//hello,它工作正常!!无法理解为什么相同的功能在/Google Cloud Endpoints 上不起作用(虽然在本地工作!)

0 投票
0 回答
1029 浏览

json - Swagger 对 JSON 和 XML 的不同定义

我目前正在使用 Swagger 2.0 记录 API。

API 生成application/jsonapplication/xml.

定义部分是这样的:

Swagger-UI 生成此 XML。

而这个 JSON:

两者都是正确的,但 API 提供了不同的 JSON。

如何使用 Swagger 记录这一点?

0 投票
1 回答
1464 浏览

swagger - Swagger:如何获取格式化的示例 json

我真的很难理解examples回复部分的格式。我为 500 Internal Sever 错误定义了以下响应。

当我在 swagger-ui 中加载它时,它看起来像这样:

Json 响应格式

如何使响应格式化为多行并看起来像这样?:

0 投票
0 回答
178 浏览

python - 有没有办法使用 Bloomberg OpenAPI 生成覆盖字段值列表?

例如,如果我想查询特定药品市场的处方,我可以指定市场,例如 10MG 药丸。有没有办法列出该领域所有可能的药物优势?

或在 Excel 中:

0 投票
2 回答
1973 浏览

ruby - 为 REST API 创建动态 Ruby OpenAPI/Swagger 客户端的助手

我使用Bravadopetstore的 REST API 创建了一个 Python 客户端。

我需要做同样的事情来获取 REST API 的动态 Ruby 客户端。

  • 我在OS 集成 Swagger 页面中看到了工具列表,但其中大多数似乎是使用 Swagger 自动化测试或创建 Swagger/openapi API,而不是创建使用 Swagger API 的客户端。

  • Svelte是上面列表中的“来自 Swagger JSON Spec 的动态 Ruby API 客户端”。它可能是一个很好的候选者,并且看起来类似于我已经使用的Bravado Python 库,但是:

    • 似乎请求参数验证仅针对基于 URL 的参数进行,因此它不会提供请求,并且针对 Swagger 2.0 规范的响应验证就像这里一样。
    • Svelte 返回 Faraday::Request 而不是模型实例。
  • Ruby gem OpenAPI是正式的 Ruby 包装器,这是我们正在寻找的,但目前还没有任何文档 Cf. 主要自述文件:“在活动开发中。文档即将推出”
  • Excon(感谢@kevin-burnett 指出)没有为 Swagger 描述的 API 提供自动包装器,它是一个 HTTP 客户端,对应于 Python 的Requests,因此是一个手动使用 API 的库。

这是我们在 Ruby 中寻找的那种特性的 Python 代码:

要获得简单的 dict 答案(不使用模型):

提供:

更好的是,默认情况下使用模型:

0 投票
1 回答
20778 浏览

swagger - 如何在 Swagger 中为 GET 参数指定示例?

我正在使用在线Swagger Editor为我的 API 创建 Swagger 规范。

我的 API 有一个 GET 请求端点,我使用以下 YAML 代码来描述输入参数:

如果我放入example标签,我会收到一条错误消息:

不完全是 <#/definitions/parameter>,<#/definitions/jsonReference> 之一

在 Swagger 中编写 GET 参数时如何设置示例?