pythone中对资源和项目端点的不同投影

2024-04-25 06:01:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我对restfulapi相当陌生。所以请容忍我的无知。你知道吗

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

我想设置两个端点:

  • GET /api/foobars, 这应该返回一个_id列表,即[{'_id': 1}, {'_id': 2}]。你知道吗
  • GET /api/foobars/1,这应该返回一个'_id'==1的文档,即{'_id': 1, 'foo': 1, 'bar': 1}。你知道吗

我在域中设置了一个投影

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

这在资源级别上起到了预期的作用。但在项目级别,它仍然只返回投影字段。你知道吗

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


Tags: 文档apiidgetfoomongodbbar资源
1条回答
网友
1楼 · 发布于 2024-04-25 06:01:33

我想出了一个解决办法。也许不是那种看起来多余的宁静方式。你知道吗

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

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

相关问题 更多 >