python - 移动 Flask-Restplus Swagger API 文档

标签 python flask swagger swagger-ui flask-restplus

我正在尝试使用 flask-restplus 在 python 中构建一个 restful API。我希望 swagger 文档位于与普通“/”不同的位置。

我正在关注文档 here并已按照说明进行操作。我正在使用 python2.7.3 并具有以下代码 ~/dev/test/app.py:

from flask import Flask
from flask.ext.restplus import Api, apidoc

app = Flask(__name__)
api = Api(app, ui=False)

@api.route('/doc/', endpoint='doc')
def swagger_ui():
    return apidoc.ui_for(api)

app.register_blueprint(apidoc.apidoc)

当我尝试运行此 python app.py 时,我得到:

Traceback (most recent call last):
  File "app.py", line 7 in <module>
    @api.route('/doc/', endpoint='doc')
  File "/home/logan/.virtualenvs/test/lib/python2.7/site-packages/flask_restplus/api.py", line 191, in wrapper
    self.add_resources(cls, *urls, **kwargs)
  File "/home/logan/.virtualenvs/test/lib/python2.7/site-packages/flask_restplus/api.py", line 175, in add_resource
    super(Api, self).add_resource(resource, *urls, **kwargs)
  File "/home/logan/.virtualenvs/test/lib/python2.7/site-packages/flask_restful/__init__.py", line 396, in add_resource
    self._register_view(self.app, resource, *urls, **kwargs)
  File "/home/logan/.virtualenvs/test/lib/python2.7/site-packages/flask_restful/__init__.py", line 435, in _register_view
    resource_func = self.output(resource.as_view(endpoint, *resource_class_args,
AttributeError: 'function' object has no attribute 'as_view'

我不太确定到底出了什么问题,我想我明白我没有继承自 Resourceas_view 通常来自哪里,但文档似乎表明这应该有效。

如有任何帮助,我们将不胜感激。

最佳答案

对于 Flask-Restplus <= 0.8.0 你应该这样写:

from flask import Flask
from flask.ext.restplus import Api, apidoc

app = Flask(__name__)
api = Api(app, ui=False)

@app.route('/doc/', endpoint='doc')
def swagger_ui():
    return apidoc.ui_for(api)

注意使用 @app 而不是 @api

从 v0.8.1(即将发布)开始,您只需编写:

from flask import Flask
from flask.ext.restplus import Api, apidoc

app = Flask(__name__)
api = Api(app, doc='/doc/')

参见:http://flask-restplus.readthedocs.org/en/latest/swagger.html#swagger-ui

关于python - 移动 Flask-Restplus Swagger API 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570096/

相关文章:

go - 第一次设置 go-swagger

python - 文字版: from Python to Matlab

python - 使用 Python 库的多元多重回归

python - 使用 Jinja2 (Flask) 模板引擎参数化可重用 block

python - Aiohttp wsgi 处理程序不工作

node.js - 根据 Swagger API 定义检查 JSON 有效负载是否有效的库

python - Pandas to_csv : suppress scientific notion for data frame with mixed types

python - 如何在 Django 项目中设置 APScheduler?

python - 在 Flask shell 中运行 Flask 应用程序时出现 AttributeError

flutter - 如何使用 token 来实现授权功能?