Spring REST-发布合并的JSON(多个对象)

时间:2018-11-27 12:38:26

标签: json spring rest cloud feign

我有四个表:

  1. 汽车

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

    • id
    • 名称
    • id_car
  3. 轮胎

    • id
    • 名称
    • 马戏团
    • id_car
  4. 声音播放器

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

1 个答案:

答案 0 :(得分:2)

您可以创建一些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