java - 如何制作最好的DTO请求类?

标签 java json spring-boot jackson

我需要创建一个代表 JSON 请求正文的 DTO 类。

我想使用 final 字段使其完全不可变。我已经看到基于 @JSONCreator all args 构造函数的实现,但我还需要一项功能。

DTO 类应该灵活并能够容忍请求中缺少某些字段,同时确保所有必要的属性都就位。

您能给我提供一个此类 DTO 的示例吗?

最佳答案

Jackson 将自动处理缺失的字段,并将这些字段设置为 null

它还有一些配置选项,决定在序列化响应时是否应省略 null 字段或将其设置为特殊值 null

objectMapper.setSerializationInclusion(Include.NON_NULL);

另一方面,如果您正在设计 API,您可能需要查看 Swagger/OpenAPI 并从那里以声明方式定义您的 API(您可以指定字段是可选还是必需)。然后使用 codegen 工具自动生成 DTO。 (他们将遵循最佳模式,并提供 Fluent API 样式 setter )。

关于java - 如何制作最好的DTO请求类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56414292/

相关文章:

ios - 由于 json 问题,Restkit 在 iOS 8 中崩溃?

json - 分页 jsonschema/hyperschema 时保留查询参数

java - 如何获取放置文档的 JTextField 名称?

java - 在 Spring 中消耗大量 json 有效负载的最佳方法?

javascript - google电子表格导出为json文件,如何格式化?

JAVA - 同时使用JPA 和PreparedStatements 的不好做法?

docker - 在openshift中同步服务的所有Pod

java - 尝试在另一个方法中运行方法时出现错误 "This method requires a body instead of a semicolon"

java - 将注释插入 Jackson 的 Retrofit 请求中

java - Spring Boot集成url分页解决方案