我是RESTful API的新手。所以请忍受我的无知。
假设我有一个包含一些文档的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}
}
}
}
这在资源级别上按预期工作。但是在项目级别,它仍然仅返回投影的字段。
如何正确定义投影?是否应为同一资源设置多个端点?谢谢!
答案 0 :(得分:0)
我想出了一种解决方法。也许不是RESTful方式,因为它似乎是多余的。
DOMAIN = {
'foobar_list': {
'schema': {...},
'datasource': {'source': 'foobars'},
'projection': {'_id': 1}
},
'foobar_item': {
'schema': {...},
'datasource': {'source': 'foobars'},
# Disable resource level endpoint
'resource_methods': [],
},
}