当与 Flask-Restplus 一起使用时,Flask 路由位于 / returns 404

Flask route at / returns 404 when used with Flask-Restplus

我有一个 Flask 应用程序,它有一个 Flask-RestPlus API 以及一个“/”路由。然而,当我尝试访问“/”时,我得到了 404。如果我删除了 Flask-RestPlus 扩展,路由就可以工作。如何让这两个部分协同工作?

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)
api = Api(app, doc="/doc/")  # Removing this makes / work

@app.route("/")
def index():
    return "foobar"

flask-restplus 根据他们的文档定义了一种不同的分配路由的方式:

@api.route('/')
class Home(Resource):
    def get(self):
        return {'hello': 'world'}

请注意,使用 api 变量而不是 app。此外,尽管我不是 100% 确定它是必需的,但使用了 class。

这是关于那个问题的 open issue in Flask-RestPlus. As described in this comment,更改 routeApi 的顺序解决了这个问题。

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)

@app.route("/")
def index():
    return "foobar"

api = Api(app, doc="/doc/")