如何在Flask Restplus文档中指明基本URL

Ale*_*and 2 flask swagger-ui flask-restplus

您能否描述一下如何在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='me@xxx.com',
    base_url='/test')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

noi*_*rre 16

默认情况下,当使用此模式(即带有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/'
Run Code Online (Sandbox Code Playgroud)

仅更改文档位置

如果要将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/'
Run Code Online (Sandbox Code Playgroud)

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


小智 5

您可以使用前缀参数来定义它。我已经在0.13.0版本上尝试过了。

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)
api = Api(app, prefix='/api')
Run Code Online (Sandbox Code Playgroud)