设计烧瓶持久性API的最佳方法,其中一个资源与两个父资源有关系

时间:2019-04-16 09:56:22

标签: rest api flask flask-sqlalchemy flask-restful

假设我有三个资源:用户,商店和商品。用户将是Store的父资源,而Store将是Item资源的另一个父资源。现在,如果用户发出GET请求以查看特定商店的商品 即https://example.com/user/<user_id>/store/<store_id>/items/

我希望注册后为所有​​用户提供3个默认存储。用户将只能修改项目。

或者,我是否应该让用户拥有Item资源的子项,而Store拥有Item资源的子项。因此store_id将把Store资源与Item结合在一起。

这种REST API的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

只需定义API类,如下所示

class UserStoreItemManage(Resource):
    def get(self, user_id, store_id):
        (...)

,然后像这样添加资源。

api.add_resource(UserStoreItemManage, "/user/<user_id>/store/<store_id>/items/")

有效。

如果使用flask_restful,则不必总是创建属于模型(表)的类。

只需指定模块名称,例如UserStoreItemManage。 会没事的。