问题标签 [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.
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 安全性的生成器?
- 如何处理这些副作用?
spring - _link 模型 - HATEOAS
我被要求将 HATEOAS 作为我们其余 API 的一部分来实现,这就是 Swagger 规范中定义响应的方式
rel和href是有道理的,我可以找到这两个的很多例子,但我找不到任何动作。它是标准的一部分吗?我真的应该寄回去吗?
我正在使用 Spring hateoas 库,并且它肯定不支持操作。对此的任何指导都将是可观的。
谢谢。
c# - Web API 对象共享
我的对象有问题。
我曾经有两个几乎相同的对象,但一个有一些额外的字段,所以我将它们合并为一个。
现在我遇到的问题是,当我使用 swagger 编写 Web api 文档时,它会显示整个对象,但对于某些调用,我只想使用对象的一部分。
我的问题是,如果我有一个具有基本值的对象,是否可以让另一个对象使用基本对象作为起点/参考,我可以从中添加我需要的额外值?
google-cloud-endpoints - 部署包含“文件”类型参数的端点时出错
我正在尝试部署一个包含type 参数的file
简单端点。
我将gcloud service-management deploy
命令与以下符合 openapi 的 yaml 一起使用:
但得到以下错误:
如果我将file
参数取出,则成功部署端点。这是谷歌云端点限制还是有另一种定义方式?
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 上不起作用(虽然在本地工作!)
json - Swagger 对 JSON 和 XML 的不同定义
我目前正在使用 Swagger 2.0 记录 API。
API 生成application/json
和application/xml
.
定义部分是这样的:
Swagger-UI 生成此 XML。
而这个 JSON:
两者都是正确的,但 API 提供了不同的 JSON。
如何使用 Swagger 记录这一点?
python - 有没有办法使用 Bloomberg OpenAPI 生成覆盖字段值列表?
例如,如果我想查询特定药品市场的处方,我可以指定市场,例如 10MG 药丸。有没有办法列出该领域所有可能的药物优势?
或在 Excel 中:
ruby - 为 REST API 创建动态 Ruby OpenAPI/Swagger 客户端的助手
我使用Bravado为petstore的 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 答案(不使用模型):
提供:
更好的是,默认情况下使用模型:
swagger - 如何在 Swagger 中为 GET 参数指定示例?
我正在使用在线Swagger Editor为我的 API 创建 Swagger 规范。
我的 API 有一个 GET 请求端点,我使用以下 YAML 代码来描述输入参数:
如果我放入example
标签,我会收到一条错误消息:
不完全是 <#/definitions/parameter>,<#/definitions/jsonReference> 之一
在 Swagger 中编写 GET 参数时如何设置示例?