我想知道 Spring Boot 最佳实践。我有一个 Spring Boot API,它基本上公开了另一个 API。这是一个必要的邪恶。外部 API 完全是一场灾难,我们无法直接将其暴露给我们的客户。问题在于,此 API 有时需要 requestBody 中的字段,但不会将它们返回给使用者。将其转换为 Spring Boot(Javax 验证或 Lombok)。我不能只在这些字段上添加 @Notnull 或 @Nonnull 注释。因为当 Jackson 尝试反序列化 responseBody 时,它会失败。我应该在这里做什么?我应该制作一个单独的 ObjectIn 和 ObjectOut我应该删除注释并在restController 中进行自定义条件检查吗我应该完全做些别的事情吗
2 回答
Helenr
TA贡献1780条经验 获得超3个赞
如果请求和响应有效负载不同,则使用不同的类来表示它们可能是有意义的。为了处理将 DTO 映射到域模型(以及其他方式)的样板代码,您可以查看映射框架,例如MapStruct,它与 Spring 集成得很好。
除了为输入和输出定义不同的类之外,您还可以研究验证组。
桃花长相依
TA贡献1860条经验 获得超8个赞
假设数据以 JSON 结构传输。
使用 @JsonProperty(value = "example_field_name", required = false),将 required 设置为 false,来注释您的属性。如果 JSON 结构中缺少字段,Jackson 将不会抛出任何错误。
添加回答
举报
0/150
提交
取消