2014-12-05 55 views
1

我目前正在使用Flask,Flask-sqlalchemy和flask-restless开发一个REST API。是否可以扩展Flask-restless来添加新路线?

我有一个用户模型和一个类别模型。一个用户可以有多个类别,一个类别只能属于一个用户(一对多关系)。这种关系是在sqlalchemy模型中建立起来的。

我正在使用瓶子不安地创建api。举例来说,我有以下行来创建用户API:

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

当我做一个GET请求或POST请求上/ API /用户,一切工作正常。

当我在/ api/users/3/categories上做GET请求时,它也可以工作。

但是,我不能做/ API POST请求/用户/ 3 /类别,并得到

状态代码:405不允许的方法,允许:OPTIONS,HEAD,GET

显然,只允许OPTIONS,HEAD和GET请求,但是在创建api时,我确实包含了POST。

你们有什么想法是什么问题吗?或者如何扩展api以允许POST方法在瓶中不安?

回答

0

如果你想新的类别添加到现有的用户,您应该发送一个PUT/PATCH请求:

/api/users/3 

与请求数据看起来像这样:

{ "categories": 
    { 
    "add": [ {"field1": "val1", "field2": "val2"} ] 
    } 
}