小编inv*_*sus的帖子

Spring REST API 多个 RequestParams 与控制器实现

我想知道在给定多个请求参数的 GET 请求的情况下实现控制器的正确方法。根据我对 REST 的理解,拥有一个带有用于过滤/排序的附加参数的端点比使用多个端点(每种情况一个)要好得多。我只是想知道此类端点的维护和可扩展性。请看下面的例子:

@RestController
@RequestMapping("/customers")
public class CustomerController {

    @Autowired
    private CustomerRepository customerRepo;

    @GetMapping
    public Page<Customer> findCustomersByFirstName(
                @RequestParam("firstName") String firstName,
                @RequestParam("lastName") String lastName,
                @RequestParam("status") Status status, Pageable pageable) {

        if (firstName != null) {
            if (lastName != null) {
                if (status != null) {
                    return customerRepo.findByFirstNameAndLastNameAndStatus(
                                                    firstName, lastName, status, pageable);
                } else {
                    return customerRepo.findByFirstNameAndLastName(
                                                    firstName, lastName, pageable);
                }
            } else {
                // other combinations omitted for sanity
            }
        } else {
            // other combinations omitted for sanity …
Run Code Online (Sandbox Code Playgroud)

java api rest spring spring-boot

4
推荐指数
1
解决办法
1682
查看次数

标签 统计

api ×1

java ×1

rest ×1

spring ×1

spring-boot ×1