繁体   English   中英

Spring 引导:根据用户请求从 API 获取所需的列

[英]Spring Boot: Get required columns from API based on user request

我正在尝试实现一个 API 端点,用户可以在其中从 API 请求所需的列

基本上,这就是我想要的:这是我的产品表实体

@Entity
@Table(name ="products") 
class product{
   private Long id;
   private String itemName;
   private String itemDesc;
   private double quantity;
   private double purchaseRate;
   private double saleRate;
   private double onlineSaleRate;
.
.
.
constructor()
getter & setter
}

***我的端点是: localhost:8080/api/v1/products

要求:我想编写一个 api 端点,我在其中根据要求请求列并将这些列作为响应

示例:如果我只需要 - itemName、itemPrice 和数量,我将仅将它们作为响应返回。 如果某些用户对 itemName、purchaseRate、saleRate、数量有要求,他只会得到这些作为响应。

现在我正在根据要求编写新的端点,但我认为有一些方法可以做到这一点。

我想在我的应用程序中实现这一点,我为此尝试了谷歌,但没有根据我的要求产生的搜索查询。

创建一个 class ,其中包含实体的所有字段,字段类型为可空的盒装 Boolean(用于请求 json)。

class ProductColumns {
    private Boolean itemName;
    private Boolean itemDesc;
    ...

    // setters and getters
}

然后,要构建自定义响应,您可以使用 java Map 来实现:

public ResponseEntity<Object> getFilteredColumns(ProductColumns columns) {
    Map<String, Object> map = new HashMap<String, Object>();

    if (columns.getItemName() == true) {
        map.put("itemName", [your repo/service method for getting the particular value]);
    }
    if (columns.getItemDesc() == true) {
        map.put("itemDesc", your repo/service method for getting the particular value]);
    }

    ...

    return ResponseEntity<Object>(map, HttpStatus.OK);
}

当然,您应该根据自己的喜好将其包装在一些try-catch中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM