簡體   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