Можно ли расширить Flask-restless, чтобы добавить новые маршруты?

В настоящее время я разрабатываю REST API, используя Flask, Flask-sqlalchemy и flask-restless.

У меня есть модель пользователя и модель категории. У пользователя может быть много категорий, и категория принадлежит только одному пользователю (отношение «один ко многим»). Отношения устанавливаются в модели sqlalchemy.

Я использую flask-restless для создания API. Например, у меня есть следующая строка для создания пользовательского API:

manager.create_api('User', collection_name='users', methods=['GET','POST','PUT','DELETE'])

Когда я делаю GET-запрос или POST-запрос к /api/users, все работает нормально.

Когда я делаю запрос GET на /api/users/3/categories, он тоже работает.

Однако я не могу выполнить запрос POST в /api/users/3/categories и получить

Код состояния: 405 МЕТОД НЕ РАЗРЕШЕН, Разрешить: ОПЦИИ, ГОЛОВА, ПОЛУЧИТЬ

По-видимому, разрешены только запросы OPTIONS, HEAD и GET, но при создании API я включил POST.

Ребята, вы хоть представляете, в чем проблема? Или как расширить API, чтобы разрешить метод POST в flask-restless?


person user2483431    schedule 05.12.2014    source источник


Ответы (1)


Если вы хотите добавить новые категории для существующего пользователя, вы должны отправить запрос PUT/PATCH по адресу:

/api/users/3

с данными запроса, выглядящими так:

{ "categories":
  {
    "add": [ {"field1": "val1", "field2": "val2"} ]
  }
}
person Jakub Bąk    schedule 09.01.2015