java - 我的控制器中的排序应该是什么样的?
问题描述
我的 REST API 有一个 Spring 控制器,目前允许通过各种参数进行搜索:
@GetMapping(value = "/dogs", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseDTO<DogDTO>> getDogs(
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size,
@RequestParam(required = false) String colour,
@RequestParam(required = false) String breed,
@RequestParam(required = false) String name,
例如/api/dogs?colour=black&breed=labrador
响应当前显示在表格中,但现在需要在这些列中的任何一个上搜索 asc 或 desc - 但不能同时搜索多个列。
我应该如何更改我的控制器定义以添加对这些参数的排序并指定 asc 和 dec?
这些更改后的网址会是什么样子?
例如
/api/dogs?colour=black?sort=-id
/api/dogs?colour=black?sort=id&dir=asc
解决方案
你是对的,如果你遵循相同的逻辑,你必须再添加 2 个参数 sort 和 dir。
@RequestParam(required = false) String sort
@RequestParam(required = false) String dir
/api/dogs?color=black&sort=column&dir=asc
在您的 DAO 中修改您的查询并添加
按列 asc 从表中选择列;
推荐阅读
- asynchronous - 测试异步回复的机制
- java - Spring 可缓存对象存储在哪里?
- swift - 结合订阅和从主题发送,为什么顺序很重要?
- python - 在字典中创建嵌套列表,列表中没有重复项
- java - java中的同步概念不起作用?
- c# - 检查 GridView 中的列是否有位图
- docker - Kubernetes & Gitlab:如何存储私有注册表的密码?
- python - pyspark 中 spark.sql() 和 cursor.execute 的区别?
- typescript - 如何让 ts-transformer-keys 与 Vue 一起使用
- azure - 如何在 Azure DevOps 的 microsoft excel 中打开工作项查询结果?