Spring REST - Post 组合 JSON(多个对象)

Spring REST - Post combinate JSON (multiple objects)

我有四个表:

  1. 汽车

    • id
    • 颜色
    • 制造商
    • 型号
  2. 座位

    • id
    • 名字
    • id_car
  3. 轮胎

    • id
    • 名字
    • 圆环
    • id_car
  4. sound_player

    • 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",
    }
}

您可以创建一些包含您需要的所有模型的 DTO 所有参数

你可以通过这个 link:

了解 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 注释,您可以从以下 link:

中了解它们

https://projectlombok.org/features/GetterSetter