我需要获得不同的参数来响应两个不同的APIgetAll
和getbyID
。现在我得到了相同的结果——两个API的second json
。
我想得到响应apigetALL
的第一个json,而不需要一对多关系和我想获得响应apigetbyid
的第二个json,具有一对多关系
第一个JSON响应:
{
"id":2,
"itemName":"book",
}
第二个JSON响应:
{
"id":2,
"itemName":"book",
"owner":
{
"id":1,
"name":"John"
}
}
用户类
public class User {
public int id;
public String name;
@JsonBackReference
public List<Item> userItems;
}
项目类别
public class Item {
public int id;
public String itemName;
@JsonManagedReference
public User owner;
}
有人能帮忙吗?
我的建议是让项目类只用于数据传输,比如:
public class ItemDTO {
public int id;
public String itemName;
}
然后在你的控制器中,你可以做这样的事情:
@GetMapping('/get-all')
public ResponseEntity<ItemDTO> getAll() {
//get Item object
Item item = //e.g database call
ItemDTO itemDTO = new ItemDTO(item.id, item.name);
return ResponseEntity.ok(itemDTO);
}
@GetMapping('/get-by-id/{id}')
public ResponseEntity<Item> getAll(@PathVariable Integer id) {
Item item = //e.g get item by id
return ResponseEntity.ok(item);
}