首页 > 解决方案 > Python Eve 中资源和项目端点的不同投影

问题描述

我对 RESTful API 很陌生。所以请原谅我的无知。

假设我有一个foobars包含一些文档的 MongoDB 集合。结构如下: [{'_id': 1, 'foo': 1, 'bar': 1}, {'_id': 2, 'foo': 2, 'bar': 2},...]

我想设置两个端点:

我在域中设置了一个投影

DOMIAN = {
    'foobars': {
        'schema': {...},
        'datasource': {
            'projection': {'_id': 1}
        }
    }
}

这在资源级别上按预期工作。但在项目级别上,它仍然只返回投影字段。

我应该如何正确定义投影?我应该为同一个资源设置多个端点吗?谢谢!

标签: pythonmongodbeve

解决方案


我想出了一个解决方法。也许不是 RESTful 方式,因为它看起来是多余的。

DOMAIN = {
    'foobar_list': {
        'schema': {...},
        'datasource': {'source': 'foobars'},
        'projection': {'_id': 1}
    },
    'foobar_item': {
        'schema': {...},
        'datasource': {'source': 'foobars'},

        # Disable resource level endpoint
        'resource_methods': [],
    },
}

推荐阅读