为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot验证,反序列化requestBody时期望字段

Spring Boot验证,反序列化requestBody时期望字段

临摹微笑 2023-06-21 13:53:42
我想知道 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 集成得很好。

除了为输入和输出定义不同的类之外,您还可以研究验证组


查看完整回答
反对 回复 2023-06-21
?
桃花长相依

TA贡献1860条经验 获得超8个赞

假设数据以 JSON 结构传输。

使用 @JsonProperty(value = "example_field_name", required = false),将 required 设置为 false,来注释您的属性。如果 JSON 结构中缺少字段,Jackson 将不会抛出任何错误。

查看完整回答
反对 回复 2023-06-21
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信