python - 使用 falcon-swagger-ui 在 Falcon 中提供 Swagger API 文档时遇到困难

标签 python rest swagger falconframework

我正在尝试基于 falcon-swagger-ui 包提供 swagger API 文档:https://github.com/rdidyk/falcon-swagger-ui 并使用我的存储库中的示例:

# example.py
import falcon
from falcon_swagger_ui import StaticSinkAdapter
from falcon_swagger_ui import register_swaggerui_app

SWAGGERUI_URL = '/swagger'  
SCHEMA_URL = '/swagger.json'

app = falcon.API()
app.add_sink(
    StaticSinkAdapter('/home/greg/falcon-swagger-example/schema.json'), SCHEMA_URL
)

register_swaggerui_app(app, SWAGGERUI_URL, SCHEMA_URL, config={
    'supportedSubmitMethods': ['get'],
})

我的架构 json 文件已经存在。如果我然后运行 ​​gunicorn example:app 并转到 http://127.0.0.1:8000/swagger我收到以下错误:

[2017-11-30 13:51:59 +0000] [23935] [ERROR] Error handling request /swagger.json
Traceback (most recent call last):
  File "/home/greg/falcon-swagger-example/.env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/home/greg/falcon-swagger-example/.env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/greg/falcon-swagger-example/.env/local/lib/python2.7/site-packages/falcon/api.py", line 242, in __call__
    responder(req, resp, **params)
TypeError: __call__() takes exactly 4 arguments (3 given)

你知道我做错了什么吗? 在任何人看来,是否有更好的软件包可以通过 Falcon API 提供 swagger API 文档?

最佳答案

自原始帖子发布以来,falcon-swagger-ui 进行了一些更新。

现在,如果您使用存储库中的示例:

https://github.com/rdidyk/falcon-swagger-ui/blob/master/example.py#L9-L17

并将您的 swagger 模式放入 static/v1/swagger.json 中,然后当您前往 http://127.0.0.1:8000/swagger 时,swagger 将正确显示

关于python - 使用 falcon-swagger-ui 在 Falcon 中提供 Swagger API 文档时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48170246/

相关文章:

python - tf.estimator.Estimator 中参数的混淆

python - 来自网络的 Pandas read_csv 在 Python 3.8 和 3.10 之间表现不同?

python - 调用 .save() 后 Django 模型不更新

javascript - 带有 REST API 和 ACL 的云端数据库

asp.net-core - .NET & Swagger 开始出现 401 错误

python - Pytest:如何在测试之外访问命令行参数

java - 如何使用 Apache Camel 和 Jetty 创建 REST 微服务

ruby-on-rails - RESTful rails 应用程序的简单面包屑

python - 带有列表字段的 Flask-Restful-Swagger 模型类

amazon-web-services - 如何在 OpenApi 端点定义中引用现有 API 网关授权者