存在catch all时的Flask RESTful错误处理

2024-04-19 00:53:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我们使用Flask RESTful来定义一个形式的API

bp = Blueprint('api', __name__, url_prefix='/api')
api = Api(bp)

@api.resource('/users/<int:user>')
class User(Resource):
    def get(self, user):
        ...

Catch-All结合使用React呈现所有页面。在

^{pr2}$

问题是与有效的API端点不匹配的请求应该返回一个404,但是给定Catch All逻辑,所有未注册的API路由都只是路由到呈现模板。在

有没有一个好方法可以确保无效的API请求返回404?似乎没有一种方法可以将路由排除在所有的方法之外,所以我目前的解决方法是定义如下:

from werkzeug.routing import NotFound

@api.resource('/<path:path>')
class Endpoint(Resource):
    def get(self, path):
        raise NotFound()

    def put(self, path):
        raise NotFound()

    def post(self, path):
        ...

似乎有点冗长。在


Tags: path方法selfapi路由get定义def