编程语言
首页 > 编程语言> > python – 移动Flask-Restplus Swagger API文档

python – 移动Flask-Restplus Swagger API文档

作者:互联网

我正在尝试使用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'

我不确定到底出了什么问题,我想我明白我没有从资源中继承as_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

标签:swagger-ui,python,swagger,flask,flask-restplus
来源: https://codeday.me/bug/20190824/1709129.html