在 REST API 中添加参数以忽略搜索文本大小写的正确方法是什么
What is the correct way of adding parameter to ignore case for search text in a REST API
我有一个 API 端点来检索所有用户。 searching/filtering的查询参数有3个,结果如下。
GET /users?name=test&age=23&area=abc
现在我想介绍一个在搜索name
参数时忽略大小写的选项。例如,上面的 API 调用应该 return 即使名称等于 Test
或 tesT
.
实施此选项的正确方法是什么?添加另一个查询参数或有更好的实现方法吗?
我会为 name 实现两个新参数,即:nameIgnoreCase 和 nameCaseSensitive。在这种情况下,端点的用户可以而且必须做出决定。如果这被很好地记录下来,用户会得到一个额外的提示,表明这个“问题”根本不存在。
您还可以继续提供 name 作为默认行为,这将退回到 nameIgnoreCase 或 nameCaseSensitive.
在这种特定情况下,一个更简单的选择可能是将查询参数值定义为正则表达式,因为正则表达式本身允许我们将字符串定义为不区分大小写/区分大小写。
在其他情况下,另一种选择是将规范(值需要不区分大小写)合并到查询参数值本身中,例如
http://localhost:3000?name=case_insensitive(test)
我有一个 API 端点来检索所有用户。 searching/filtering的查询参数有3个,结果如下。
GET /users?name=test&age=23&area=abc
现在我想介绍一个在搜索name
参数时忽略大小写的选项。例如,上面的 API 调用应该 return 即使名称等于 Test
或 tesT
.
实施此选项的正确方法是什么?添加另一个查询参数或有更好的实现方法吗?
我会为 name 实现两个新参数,即:nameIgnoreCase 和 nameCaseSensitive。在这种情况下,端点的用户可以而且必须做出决定。如果这被很好地记录下来,用户会得到一个额外的提示,表明这个“问题”根本不存在。 您还可以继续提供 name 作为默认行为,这将退回到 nameIgnoreCase 或 nameCaseSensitive.
在这种特定情况下,一个更简单的选择可能是将查询参数值定义为正则表达式,因为正则表达式本身允许我们将字符串定义为不区分大小写/区分大小写。
在其他情况下,另一种选择是将规范(值需要不区分大小写)合并到查询参数值本身中,例如
http://localhost:3000?name=case_insensitive(test)