Rest Controller 设计模式

问题描述 投票:0回答:1

在搜索 api 中为所有受支持的过滤器参数使用 pojo 而不是使用 @RequestParam 来获取每个参数是不是很糟糕?

假设我有用于搜索汽车的 API 和支持的汽车过滤器

  1. 品牌、型号、型号、类型、颜色、车轮类型等

所以我应该这样写

@RequestMapping(value = "", method = {RequestMethod.GET})
public ResponseEntity<ApiResponse> searchCars(

        @RequestParam(value = "brand", required = false) String brand,
        @RequestParam(value = "model", required = false) String model,
        @RequestParam(value = "variant", required = false) String variant,
        @RequestParam(value = "type", required = false) String type,
        @RequestParam(value = "color", required = false) String color


)

或者我可以创建 SearchCarFilter 并在那里添加相应的字段

spring spring-boot spring-restcontroller
1个回答
0
投票

将对象与所有搜索字段一起使用有一些优点,例如

  • 您可以在不影响方法签名的情况下添加或删除新字段,只需要添加/删除POJO中的字段并更改Service层的逻辑即可。

  • 如果其他 API 需要,也可以重用此 POJO。

  • 使用 POJO 添加验证更简单。

© www.soinside.com 2019 - 2024. All rights reserved.