Move Flask-Restplus Swagger API Docs(移动 Flask-Restplus Swagger API 文档)
问题描述
我正在尝试使用 flask-restplus 在 python 中构建一个宁静的 API.我想让 swagger 文档位于与普通/"不同的位置.
I'm trying to use flask-restplus to build a restful API in python. I'd like to have the swagger docs located in a different place than the normal "/".
我正在关注这里的文档并按照说明进行操作.我正在使用 python2.7.3 并有以下代码 ~/dev/test/app.py
:
I'm following the documentation here and have followed the instructions. I'm using python2.7.3 and have the following code ~/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
我得到:
When I try to run this python app.py
I get:
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'
我不太确定到底出了什么问题,我想我知道我没有从 Resource
继承,而这正是 as_view
通常来自的地方,但文档似乎表明这应该有效.
I'm not really sure what exactly is going wrong, I guess I understand that I haven't inherited from Resource
which is where as_view
would normally come from, but the documentation seems to indicate that this should work.
我们将不胜感激.
推荐答案
使用 Flask-Restplus <= 0.8.0 你应该这样写:
With Flask-Restplus <= 0.8.0 you should write:
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(即将发布)开始,您只需编写:
Starting from v0.8.1 (soon to be released), you will simply have to write:
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
这篇关于移动 Flask-Restplus Swagger API 文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:移动 Flask-Restplus Swagger API 文档
基础教程推荐
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 筛选NumPy数组 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01