Мои конечные точки:
# 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
Это будет прекрасно работать, но это не то, чего я хочу, так как это не express логика c, о которой я упоминал ранее. Есть ли способ, чтобы параметры URL появлялись в середине конечной точки с помощью Flask -RESTful или мне нужно согласиться на другой подход?
PS service
- это url_prefix
Плана и это не вызывает никаких проблем, на самом деле все конечные точки, имеющие параметры URL только в конце, работают нормально.