问题标签 [bravado]
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.
python - 使用 Swagger、Bravado 和 Python 3 访问 BitMEX Api
我正在尝试使用 Swagger 连接到 BitMEX。我已经编写了以下与 Bravado 的集成,但无论我做什么,我都会不断出错。
在禁用所有验证的情况下,这会引发以下错误:
我究竟做错了什么?
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 答案(不使用模型):
提供:
更好的是,默认情况下使用模型:
python - 变量名中的 Python 转义“$”字符
我正在使用 bravado,它为我创建了基于 swagger 定义调用的函数。swagger 定义包含以 . 为前缀的查询参数$
。IEclient.pet.get_pets($limit=10)
。
问题是我不能用$limit=10
,因为它会引发语法错误。
有没有办法在python中逃避这个?
python - Requests / bravado 302 对 POST 的响应变成 GET (python)
当我在虚张声势(通过 request.session())中为 Web 服务编写处理程序时,我遇到了这个特殊性:
POST 请求在被重定向时会变成 GET 请求。导致我的 POST 被破坏,我无法让它工作。
编辑:实际的请求调用来自虚张声势,如下所述: 如何在 Bravado 中设置自定义 http 客户端?我需要设置额外的客户端证书。
因此,请求呼叫/会话本身被虚张声势所掩盖。
这个问题(请求的 post/get 转换)已经在其他线程中讨论过,根据规范考虑它,但仍然很奇怪。
最后,我只是侵入了 session.py 中以下部分的请求:
我根本没有改变得到的地方。
还有这里:
我注释掉的地方:
当然这是丑陋的黑客,但我应该怎么做?希望有人对此有指导。
python-3.x - 我可以包装一个 python 对象来捕获异常吗?
我想包装一个足够通用的对象以捕获所有方法的异常。
假设我有这个类:
我想包装对象以捕获异常,但不创建定义 CanThrowException 类中存在的所有方法的类。有没有办法在python中做到这一点?
我正在使用python bravado来解析 REST API 定义并在 API 上执行测试。在 API 的正常使用中,如果端点返回与 http 代码 2xx 不同的内容,则调用失败。这就是为什么 bravado 在这些情况下会引发异常。但就我而言,我在测试 API 时会导致这些错误,因此在这种情况下它们不是错误。
这就是为什么我想隔离 bravado 的使用,管理异常(按照 bravado 团队的建议)并返回我的测试需要知道的内容。
提前致谢!
python - sphinx autodoc 是否可以处理动态属性?
我正在使用 Bravado 为 OpenAPI 端点生成 API 客户端。我已经扩展了SwaggerClient
处理一些分页问题。客户端覆盖__getattr__
and __dir__
,因此任何实例化的客户端都将提供属性映射到 swagger 规范包含的任何内容。
是否可以让 sphinx 为这些动态添加的属性生成文档?
python - 如何将授权标头添加到虚张声势创建的 API 客户端
我能够使用requests
正确验证并从 API 接收响应的模块创建一个简单的 API 接口。但是,当我尝试使用虚张声势,从 swagger 文件创建客户端,并手动将授权令牌添加到头部时,它失败并显示:
我相信我正确地添加了授权标头。
我用来创建客户端的代码如下。如图所示,我尝试以两种方式添加授权令牌:
- 在
http_client
设置中通过set_api_key
- 在
Swagger.from_url(...)
步骤中添加request_headers
.
然而,这两种选择都失败了。
我的问题是,如何正确地将授权标头添加到 bravado SwaggerClient?
python - 统一模拟与模拟对象的任何交互?
https://bravado.readthedocs.io/en/stable/testing.html演示了可以像这样模拟 OpenAPI 客户端的特定端点:
但是我如何模拟任何端点调用。例如:
这将允许我将 设置为response
可以以统一方式控制响应的函数,并且我将对调用顺序有先验知识,因此我可以正确地注入正确的响应。这是可以做到的吗?