无法使用Flask Blueprints和Swagger UI获取API规范

问题描述 投票:1回答:3

因此,按照使用烧瓶蓝图(https://github.com/rantav/flask-restful-swagger/blob/master/examples/blueprints.py)的swagger ui的示例,我有以下代码:

app = Flask(__name__)
test_blueprint = Blueprint('tests', __name__)
test_api = swagger.docs(restful.Api(test_blueprint), apiVersion='0.1',
                        basePath='http://localhost:5000',
                        produces=["application/json", "text/html"],
                        api_spec_url='/api/spec')

# Operation TestOp defined here
test_api.add_resource(TestOp, '/')

if __name__ == "__main__":
    app.register_blueprint(test_blueprint, url_prefix='/test')
    app.run(debug=True)

但是,当我尝试访问api规范文档时,无法找到该URL。我试过了...

localhost:5000/api/spec
localhost:5000/test_api/api/spec
localhost:5000/test_api

...所有这些都返回404.我也尝试创建没有蓝图的应用程序,创建文档

swagger.docs(restful.Api(app)...)

代替。如果完成此操作并且没有涉及蓝图,我可以访问文档

localhost:5000/api/spec

那么,我是否使用蓝图错误地创建了我的应用程序,或者我只是没有使用正确的URL来访问文档?

python flask swagger swagger-ui flask-restful
3个回答
4
投票

看起来你只是没有找到正确的URL。因为你的蓝图url_prefix是“/ test”,所以Swagger规范网址应该是:

localhost:5000/test/api/spec

3
投票

我知道这个线程已经过时了,但我今天遇到了这个问题,试图用我的(有点)现代烧瓶+ python3应用程序使用烧瓶 - 使用蓝图。同样的问题,没有错误,无论我尝试什么都没有规格。

我终于放弃了这个软件包(因为它看起来似乎并不是非常活跃),尽管我喜欢这个软件包的标记。

我选择了Flasgger,它最近似乎更新了。在10分钟内我完成并运行了。代码和简短教程在这里:https://github.com/rochacbruno/flasgger


0
投票

swagger.docs()出错了

from flask_restful import Api
test_blueprint = Blueprint('tests', __name__)
test_api = swagger.docs(Api(test_blueprint)...)
app.register_blueprint(test_blueprint)

还有什么

main_blueprint = Blueprint('api', __name__, url_prefix='/demo')
© www.soinside.com 2019 - 2024. All rights reserved.