我创建了一个flask应用程序,如下所示。在本地,我可以看到Swagger UI;但是,当部署到服务器时,Swagger UI不可用(继续出现错误“ SCRIPT5009:SCRIPT5009:未定义'SwaggerUIBundle'”)。即使Swagger.json处于url_prefix级别,看来swagger也在根URL级别(本地主机或服务器,而不是url_prefix级别)寻找文件。
app = Flask(__name__)
blueprint = Blueprint('queue', __name__, url_prefix='/apipath/api/v1'
authorizations = {
'apikey': {
'type': 'apiKey',
'in': 'header',
'name': 'X-Api-Key'
}
}
api = Api(blueprint, version='1.0.0', title='title', description='description', contact='email', authorizations=authorizations, doc='/')
app.register_blueprint(blueprint)
ns = api.namespace('queue', description='description')
因此,我决定使用生成的Swagger.json。但是,Swagger.json没有host字段,因此内置的Swagger UI无法正常工作(这意味着我无法“尝试一下”),如下所示。
swagger "2.0"
basePath "/apipath/api/v1"
paths
/queueprediction
post
responses
200
答案 0 :(得分:0)
我想出了如何在Swagger.json中包含host字段。
通过设置app.config ['SERVER_NAME'] ='某些主机'而不在app.run语句中设置'host'或'port'可以达到目的。
谢谢!