python - Python Eve 中资源和项目端点的不同投影
问题描述
我对 RESTful API 很陌生。所以请原谅我的无知。
假设我有一个foobars
包含一些文档的 MongoDB 集合。结构如下:
[{'_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}
}
}
}
这在资源级别上按预期工作。但在项目级别上,它仍然只返回投影字段。
我应该如何正确定义投影?我应该为同一个资源设置多个端点吗?谢谢!
解决方案
我想出了一个解决方法。也许不是 RESTful 方式,因为它看起来是多余的。
DOMAIN = {
'foobar_list': {
'schema': {...},
'datasource': {'source': 'foobars'},
'projection': {'_id': 1}
},
'foobar_item': {
'schema': {...},
'datasource': {'source': 'foobars'},
# Disable resource level endpoint
'resource_methods': [],
},
}
推荐阅读
- javascript - 参考错误:PDFViewer 未定义
- node.js - 如何获取用户执行脚本的目录名/路径?
- javascript - 解析后从js代码中获取特定值
- twitter-bootstrap - Bootstrap (4.3.1) 的 RFS(响应式字体大小)未在 1200px 阈值处生成媒体查询
- python - 熊猫数据框分组并转置而不排序
- r - 如何从润滑脂中提取时间?
- typo3 - 语言从默认语言更改时无法获取内容
- android - 如何在 Kotlin 的 RecyclerView.Adapter 中使用 SharedPreferences?
- visual-studio-code - FileSystemProvider.watch 函数中“排除”选项的格式
- linux - 如何在不运行 uname 或 proc/version 的情况下找出正在运行的内核版本?