【发布时间】:2017-04-17 21:19:00
【问题描述】:
我有一个特定的要求,我有一个像 EmployeeDTO.java 这样的 POJO
具有以下字段;
int employeeId;
String Name;
double salary;
String createdBy;
Date createdTimestamp;
String updatedBy;
Date updatedTimestamp;
现在我的要求是,虽然我将获得一个作为 JOSN 的 Create API 请求,但我不应该获得任何字段,例如employeeId、createdBy、createdTimestamp、updatedBy、updatedTimestamp。
但在 GET API 响应中,我应该发送所有这些字段。
我不能在此处使用 jsonIgnore,因为对于像employeeId 这样的字段,我不希望在请求中使用它,但我想在响应中发送它。
在 PATCH/PUT api 调用中,我期待请求中 UI 的employeeId 但不低于createdBy、createdTimestamp、updatedBy、updatedTimestamp 4 个字段。
所以一个简单的解决方案可以是我可以创建单独的 DTO,例如 EmployeeDTO、EmployeeCreateRequestDTO、EmployeeUpdateRequestDTO。但会导致代码重复。
有没有更好的方法或 json 功能/注释可以实现这一点?
我想要这个的原因,在 Swagger 模型架构中,它显示 EmplyeeDTO 中可用的所有字段,我想在此处具体说明创建请求用户不应该看到任何在后面设置的字段以 id、createdBy 等结尾。
【问题讨论】:
标签: java json rest api swagger