【问题标题】:Best way to design an API with flask-restful where one resource which has relationship with two parent resources使用 flask-restful 设计 API 的最佳方法,其中一个资源与两个父资源有关系
【发布时间】:2019-09-06 09:27:45
【问题描述】:

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

我想在注册后为所有​​用户提供 3 个默认商店。用户将只能修改项目。

或者,我是否应该让它像用户将拥有 Item 资源的子级而 Store 将拥有 Item 资源的子级一样。所以 store_id 会和 Item 一起加入 Store 资源。

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

【问题讨论】:

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


    【解决方案1】:

    只需定义 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。 会好的。

    【讨论】:

    • 我想在注册后为所有​​用户提供 3 个默认存储。用户将只能修改项目。这是我一直在寻找的答案。我知道如何使用 flask-restful 以这种方式做到这一点
    猜你喜欢
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2016-08-05
    • 2012-06-19
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多