Flask-RESTful 为端点获取 404,如果我不把 url 参数放在最后



My endpoints:

# Routes
service.add_resource(UserRegister, "/register") # Works
service.add_resource(User, "/users/<int:user_id>") # Works
service.add_resource(CategoryListResource, "users/<int:user_id>/categories") # 404 not found
service.add_resource(CategoryResource, "/categories/<int:category_id>") # Works
service.add_resource(TaskListResource, "categories/<int:category_id>/tasks") # 404 not found
service.add_resource(TaskResource, "/tasks/<int:task_id>") # Works

我的模型是结构化的,因此每个用户都有一些类别,每个类别都有一些属于它的任务。所以我希望我的 API 能够反映这一点。当我想获取属于用户的所有类别时user_id = 3我会键入service/users/3/categories,但这给了我一个 404 找不到:

"GET /service/users/3/categories HTTP/1.1" 404 -

但是当我将我的端点更改为例如:

service.add_resource(CategoryListResource, "example/<int:user_id>") # Works fine now

这将正常工作,但这不是我想要的,因为它没有表达我之前提到的逻辑。有没有办法使用 Flask-RESTful 让 url 参数出现在端点的中间,还是我必须采用不同的方法?

附言service是蓝图的url_prefix,它不会引起任何问题,事实上,所有仅在最后具有 url 参数的端点都可以正常工作。

尝试将users/<int:user_id>/categories更改为/users/<int:user_id>/categories

相关内容

  • 没有找到相关文章

最新更新