0

我需要获取不同的参数来响应 2 个不同的 APIgetAllgetbyID. 现在我得到了相同的结果 -second json对于两个 API。

我想在getALL没有一对多关系的情况下获得第一个 json 来响应 api 并且我想获得第二个 json 来响应getbyid具有一对多关系的 api

第一个 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;
    }

有人可以帮忙吗?

4

1 回答 1

1

我的建议是使项目类仅用于数据传输,例如:

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);
}
于 2020-05-01T14:42:59.857 回答