【发布时间】:2016-09-23 18:15:12
【问题描述】:
我目前正在使用 Spring Boot 创建一个带有 mongodb 后端的 REST API。是否可以在查看特定项目时只公开某些字段,而不是项目列表?
例如,在查看用户列表时,仅公开电子邮件、姓名和 id:
GET /{endpoint}/users
{
"_embedded": {
"users": [
{
"email": "some_email@gmail.com",
"name": "some name",
"id": "57420b2a0d31bb6cef4ee8e9"
},
{
"email": "some_other_email@gmail.com",
"name": "some other name",
"id": "57420f340d31cd8a1f74a84e"
}
]
}
但要公开额外的字段,例如搜索特定用户时的地址和性别:
GET /{endpoint}/users/57420f340d31cd8a1f74a84e
{
"email": "some_other_email@gmail.com",
"name": "some other name",
"address": "1234 foo street"
"gender": "female"
"id": "57420f340d31cd8a1f74a84e"
}
给定一个用户类:
public class User {
private String id;
private String email;
private String address;
private String name;
private String gender;
...
}
【问题讨论】:
-
这就是Projections and Excerpts 的用途。您可以指定您想要的内容以及如何显示。假设您使用的是 Spring Data REST,那就是。如果您有自己的自定义控制器,只需根据需要创建一个 DTO。
-
快速查看文档,看来这正是我想要的。谢谢!
-
@M.Deinum — 这应该是一个答案! :)
标签: spring mongodb spring-boot spring-data