0

我正在尝试在 json:api 端点上执行过滤器。 ?filter[name]=test name如果 db 中的名称正好是test name. Test name但是如果 name 是,tEst name或者任何其他可能的组合,我希望服务器返回我的值。我怎样才能做到这一点?

谢谢你。

4

1 回答 1

0

JSON:API 规范没有定义过滤策略:

JSON:API 与服务器支持的策略无关。过滤器查询参数可以用作任意数量的过滤策略的基础。

https://jsonapi.org/format/#fetching-filtering

它包含与您的 URL 设计相匹配的过滤策略建议:

建议希望支持基于关联过滤资源集合的服务器通过允许将过滤器与关联名称组合的查询参数来实现。

例如,以下是对与特定帖子关联的所有评论的请求:

GET /comments?filter[post]=1 HTTP/1.1

https://jsonapi.org/recommendations/#filtering

但即使是该建议也没有涵盖应该使用什么比较运算符。它也没有涵盖是否应该区分大小写。这取决于具体实现选择的过滤策略。

请注意,在 URL 中编码比较运算符的策略也是有效的。例如,您可以像这样在查询参数中对比较运算符进行编码:

GET /companies?filter[name][equalsCaseInsensitive]=test%20name

GET /companies?filter[name][equalsCaseSensitive]=test%20name

GET /companies?filter[sales][greaterThan]=100000

于 2020-12-04T22:05:16.270 回答