【发布时间】:2020-03-05 00:47:18
【问题描述】:
我正在尝试在 Heroku 服务器上托管 Flask Restplus 的 Swagger UI。它构建成功,当在 heroku 的日志中检查时,即使它显示“构建成功”。
但问题是,当我检查实际托管时,页面上只有一条消息说
未提供 API 定义。
顺便说一句,在本地运行时,swagger-UI 会在浏览器上成功加载。
以下是 swagger-ui 的示例代码片段
from flask import Flask
from flask_restplus import Resource, Api
import os
app = Flask(__name__)
api = Api(app)
@api.route('/hello')
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
app.run(host="0.0.0.0", port=port, debug=True)
那么我在这里做错了什么?有什么方法可以在 heroku 上托管一个简单的最小 flask_restplus swagger-UI 吗?任何帮助表示赞赏,谢谢。
编辑
以下是swagger.json的内容
{
"swagger": "2.0",
"basePath": "/",
"paths": {
"/hello": {
"get": {
"responses": {
"200": {
"description": "Success"
}
},
"operationId": "get_hello_world",
"tags": [
"default"
]
}
}
},
"info": {
"title": "API",
"version": "1.0"
},
"produces": [
"application/json"
],
"consumes": [
"application/json"
],
"tags": [
{
"name": "default",
"description": "Default namespace"
}
],
"responses": {
"ParseError": {
"description": "When a mask can't be parsed"
},
"MaskError": {
"description": "When any error occurs on mask"
}
}
}
如果有帮助,这就是 Procfile 里面的内容
web: python app.py
【问题讨论】:
-
ctrl+shift+i或F12浏览器控制台说什么?您是否尝试过appname.herokuapp.com/hello端点?将package.json的内容添加到您的问题中。 -
@TinNguyen 端点正在工作。但是当托管在 Heroku 上时,Swagger-UI 从未出现过。我也试过调查
ctrl+shift+i和F12。 -
@TinNguyen 我已将
package.json的内容添加到问题中 -
那不是
package.json那是swagger.json但你可以把它留在问题中。 -
我只能找到
swagger.json。你能帮我看看在哪里可以找到package.json吗?
标签: python python-3.x heroku swagger-ui flask-restplus