首页 > 解决方案 > Spring REST - 发布组合 JSON(多个对象)

问题描述

我有四张桌子:

    • ID
    • 颜色
    • 制造商
    • 模型
  1. 座位

    • ID
    • 姓名
    • id_car
    • ID
    • 姓名
    • 圆环
    • id_car
  2. 声音播放器

    • ID
    • 姓名
    • id_car

我想知道如果使用 Spring REST,是否可以通过 POST 编写一个完整的 JSON,其中包含各种模型的对象,而不必发送每个模型的单个对象。

完整 JSON 的示例如下:

{
    "color": "white",
    "manufacturer": "toyota",
    "model": "corolla",
    "seat": {
        "name": "Recaro",
    },
    "tire": {
        "name": "Recaro",
        "circlet": "18",
    }, 
    "soundPlayer": {
        "name": "Sony DHC-5000",
    }
}

标签: jsonspringrestcloudfeign

解决方案


您可以创建一些 DTO,其中将包含您需要的所有模型以及所有参数

您可以通过此链接了解 dto 模式:

https://www.tutorialspoint.com/design_pattern/transfer_object_pattern.htm

在您的情况下,您可以创建:

@Getter
@Setter
public class CarDto{
 private String color;
 private String manufacturer;
 private String model;
 private SeatDto seat;
 private TireDto tire;
 private SoundPlayerDto soundPlayer;
}

@Getter
@Setter
public class SeatDto {
 private String name;
}

@Getter
@Setter
public class TireDto{
  private String name;
  private String circlet
}

@Getter
@Setter
public class SoundPlayerDto{
  private String name;
  private String circlet
}

您可以按照您的描述传递您的请求:

@RequestBody  CarDto carDto;

然后您可以编写自己的从 dto 到您的真实实体的转换器并使用它们

@Getter 和 @Setter 它的 lombok 注释您可以从以下链接中了解它们:

https://projectlombok.org/features/GetterSetter


推荐阅读