【发布时间】:2016-10-12 06:06:55
【问题描述】:
我有一个 REST 服务 /accounts,它返回所有帐户数据(编号、名称)。
要求: 应该使用“And”或“OR”的任意组合来支持以下搜索/过滤模式,而不是重新搜索整个集合。
- 开始于
- 结束
- 包含
问题 1:这些 API 设计是否正确(RESTful)或任何更好的方法来做同样的事情 例如 -
/accounts?name^My Account 123**or**number~ACC1234
(^"==> 开头,"~"==> 结尾)
/accounts?name^My Account 123**and**number~ACC1234
(^"==> 开始于 "~"==> 结束)
/accounts?name$ACC123
($ ==>账号集合包含ACC123)
弹簧控制器:
计划将这些过滤器(查询参数)模式获取为@RequestParam,并使用正则表达式来解析模式,然后应用并从数据存储中检索它。缺点是任何新的过滤器模式都需要在 Controller 类中进行更改。
问题 2: Spring 3 中是否有任何开箱即用的功能可用于从集合中进行搜索/过滤?
谢谢!
【问题讨论】:
-
为什么不使用 spring 中作为模块可用的 apache solr 作为 spring data solr 供您参考docs.spring.io/spring-data/solr/docs/2.0.4.RELEASE/reference/…
-
您不使用查询参数是否有原因?
标签: spring rest spring-mvc restful-url