是否可以扩展 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-Restless 配置 Flask-SQLAlchemy 以使用多个数据库

Flask-Restless:manager.create_api() 不返回蓝图对象

flask-restless 使用分页或获得完整响应

flask-restless 限制 RESTful api 访问

如何查询使用 Flask-restless 设置的 API