用于可能类似于LIKE搜索的查询参数的REST模式

时间:2013-01-18 01:42:03

标签: rest

您好我正在构建一个RESTful应用程序,但无法找到建议的方式来模式化可选的模糊或LIKE查询。例如,严格的查询可能是,

/place?city=New+York&state=NY

对应于SQL“...... WHERE city =”New York“AND state =”NY“

但是,如果我想在城市名称中使用“York”搜索任意行的城市字段,该怎么办?

“... WHERE city LIKE”%{parameter}%“AND state =”{parameter2}“

我正在考虑在请求中添加某种url-valid字符,如下所示:

/place?city=*York*&state=NY

我应该使用既定或推荐的模式吗?谢谢!

1 个答案:

答案 0 :(得分:2)

使用查询字符串进行搜索很好,但使用像“*”或“?”这样的宏字符有点奇怪。在查询字符串中(除非您决定构建一个非常强大的搜索引擎,如Google)。更重要的是,默认情况下,搜索通常被认为是模糊模式,因此使用“*”附加/前置关键字是多余的。如果确实需要精确搜索,则可以使用双引号括起完全(或严格)关键字。即,我建议使用/place?city=*York*&state=NY

,而不是使用/place?city=York&state="NY"

事实上,Google使用引号来搜索确切的单词或单词集,我还发现this site采用了这种模式。