如何在 Flask Restplus 文档中指示基本 url

问题描述 投票:0回答:4

能否请您描述一下如何在Flask Restplus自动生成的文档中指示基本URL?

我正在运行以下代码,但 swagger UI 中没有显示任何内容:

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)
api = Api(app,
    title='Data Quality Framework API',
    version='v0.1',
    doc='/data_quality_framework/api/documentation',
    contact='[email protected]',
    base_url='/test')

enter image description here

flask swagger-ui flask-restplus
4个回答
24
投票

默认情况下,使用此模式时(即使用

app
作为构造函数参数),API 位于根端点(即
/
),并且 swagger 文档位于 API 根(即仍然
/
) ).

你有多种可能性:

使用蓝图更改API根

如果您想保留 API 根上的文档但更改 API 根,请使用蓝图在您想要的位置注册 API。

from flask import Flask, Blueprint
from flask_restplus import Api

app = Flask(__name__)
blueprint = Blueprint('api', __name__, url_prefix='/test')
api = Api(blueprint)
app.register_blueprint(blueprint)

assert url_for('api.doc') == '/test/'

仅更改文档位置

如果您想将 API 根保留在同一位置但只移动文档位置,Flask-restplus 允许您使用

doc
参数指定它。

from flask import Flask
from flask_restplus import Api

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

assert url_for('doc') == '/test/'

您也可以将两者结合起来。有关高级文档自定义的更多详细信息,请参阅 http://flask-restplus.readthedocs.io/en/stable/swagger.html#customization


5
投票
您可以使用

prefix 参数定义它。我已经在0.13.0版本上尝试过了。

from flask import Flask from flask_restplus import Api app = Flask(__name__) api = Api(app, prefix='/api')
    

0
投票
为了重置 Swagger 基本路径(又名。

basePath

属性):

@property def base_path(self): return "/base/path" Api.base_path = base_path API = Api( # [...] )

swagger result

通知:

https://github.com/noirbizarre/flask-restplus/issues/770

来源:

https://github.com/noirbizarre/flask-restplus/issues/517


-3
投票
添加行

from flask import url_for
    
© www.soinside.com 2019 - 2024. All rights reserved.