是否可以扩展 Flask-restless 以添加新路线?
Posted
技术标签:
【中文标题】是否可以扩展 Flask-restless 以添加新路线?【英文标题】:Is it possible to extend Flask-restless to add new routes? 【发布时间】:2015-02-03 20:51:54 【问题描述】:我目前正在使用 Flask、Flask-sqlalchemy 和 flask-restless 开发一个 REST API。
我有一个用户模型和一个类别模型。一个用户可以有多个类别,一个类别只属于一个用户(一对多关系)。关系是在 sqlalchemy 模型中建立的。
我正在使用 flask-restless 来创建 api。例如,我有以下行来创建用户 api:
manager.create_api('User', collection_name='users', methods=['GET','POST','PUT','DELETE'])
当我在 /api/users 上执行 GET 请求或 POST 请求时,一切正常。
当我在 /api/users/3/categories 上执行 GET 请求时,它也可以工作。
但是,我无法在 /api/users/3/categories 上执行 POST 请求并获取
状态码:405 METHOD NOT ALLOWED,允许:OPTIONS、HEAD、GET
显然,只允许 OPTIONS、HEAD 和 GET 请求,但在创建 api 时,我确实包含了 POST。
你们知道问题出在哪里吗?或者如何扩展 api 以允许在 flask-restless 中使用 POST 方法?
【问题讨论】:
【参考方案1】:如果您想向现有用户添加新类别,您应该发送 PUT/PATCH 请求到:
/api/users/3
请求数据如下所示:
"categories":
"add": [ "field1": "val1", "field2": "val2" ]
【讨论】:
以上是关于是否可以扩展 Flask-restless 以添加新路线?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flask-Restless 配置 Flask-SQLAlchemy 以使用多个数据库
Flask-Restless:manager.create_api() 不返回蓝图对象