如何更改 spring 资源列表名称
How to change spring resources list name
我有一个控制器返回我数据库中的所有汽车。它是通过将汽车列表放入Resources(见代码)来实现的。 我希望能够将列表的名称从 'carDTOList' 重命名为“carList”。该怎么做?
public class CarDTO {
private String id;
private UserDTO owner;
private String brand;
private String model;
private String color;
private String plate;
private String additionals;
@GetMapping("/cars")
public ResponseEntity<?> getAllCars() {
List<Resource<CarDTO>> cars = StreamSupport.stream(repository.findAll().spliterator(), false)
.map(car -> assembler.toResource(modelMapper.map(car, CarDTO.class)))
.collect(Collectors.toList());
Resources<Resource<CarDTO>> carsResource = new Resources<Resource<CarDTO>>(cars, ControllerLinkBuilder
.linkTo(ControllerLinkBuilder.methodOn(CarController.class).getAllCars()).withSelfRel());
return ResponseEntity.ok(carsResource);
}
{
"_embedded": {
"carDTOList": [
{
"id": "5d5bc8144a8fb83fd42120e1",
"owner": {
"id": "5d5bc8144a8fb83fd42120de",
如您在响应中所见,它设置为“carDTOList”
您可以重构(重命名文件)CarDTO
class 到 CarList
。应该可以了。
如果要保留CarDTO
Java 名称,则利用Jackson 注释更改命名:
@JsonRootName("car")
public class CarDTO {
根据您的配置,当返回一个集合时,将添加一个 List
后缀.. 导致 carList
.
您可以使用 Spring 注释:
@org.springframework.hateoas.core.Relation(value = "resource", collectionRelation = "resources")
注释您的 DTO
class。所以现在当你 return 一个元素时,它将被称为 resource
。如果您 return 列表,它将被称为 resources
。
我有一个控制器返回我数据库中的所有汽车。它是通过将汽车列表放入Resources(见代码)来实现的。 我希望能够将列表的名称从 'carDTOList' 重命名为“carList”。该怎么做?
public class CarDTO {
private String id;
private UserDTO owner;
private String brand;
private String model;
private String color;
private String plate;
private String additionals;
@GetMapping("/cars")
public ResponseEntity<?> getAllCars() {
List<Resource<CarDTO>> cars = StreamSupport.stream(repository.findAll().spliterator(), false)
.map(car -> assembler.toResource(modelMapper.map(car, CarDTO.class)))
.collect(Collectors.toList());
Resources<Resource<CarDTO>> carsResource = new Resources<Resource<CarDTO>>(cars, ControllerLinkBuilder
.linkTo(ControllerLinkBuilder.methodOn(CarController.class).getAllCars()).withSelfRel());
return ResponseEntity.ok(carsResource);
}
{ "_embedded": { "carDTOList": [ { "id": "5d5bc8144a8fb83fd42120e1", "owner": { "id": "5d5bc8144a8fb83fd42120de",
如您在响应中所见,它设置为“carDTOList”
您可以重构(重命名文件)CarDTO
class 到 CarList
。应该可以了。
如果要保留CarDTO
Java 名称,则利用Jackson 注释更改命名:
@JsonRootName("car")
public class CarDTO {
根据您的配置,当返回一个集合时,将添加一个 List
后缀.. 导致 carList
.
您可以使用 Spring 注释:
@org.springframework.hateoas.core.Relation(value = "resource", collectionRelation = "resources")
注释您的 DTO
class。所以现在当你 return 一个元素时,它将被称为 resource
。如果您 return 列表,它将被称为 resources
。