Spring REST - Post 组合 JSON(多个对象)
Spring REST - Post combinate JSON (multiple objects)
我有四个表:
汽车
- id
- 颜色
- 制造商
- 型号
座位
- id
- 名字
- id_car
轮胎
- id
- 名字
- 圆环
- id_car
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:
中了解它们
我有四个表:
汽车
- id
- 颜色
- 制造商
- 型号
座位
- id
- 名字
- id_car
轮胎
- id
- 名字
- 圆环
- id_car
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:
中了解它们