如果我不在末尾放置 url 参数,Flask-RESTful 将获得 404 端点
Flask-RESTful getting 404 for endpoint if I don't put url parameter at the end
我的终点:
# 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 参数出现在端点的中间,或者我是否必须采用不同的方法?
P.S。 service
是蓝图的 url_prefix
,它不会造成任何问题,事实上,所有仅在末尾具有 url 参数的端点都可以正常工作。
尝试将 users/<int:user_id>/categories
更改为 /users/<int:user_id>/categories
我的终点:
# 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 参数出现在端点的中间,或者我是否必须采用不同的方法?
P.S。 service
是蓝图的 url_prefix
,它不会造成任何问题,事实上,所有仅在末尾具有 url 参数的端点都可以正常工作。
尝试将 users/<int:user_id>/categories
更改为 /users/<int:user_id>/categories