我有routes.json
和db.json
路线
"/api/*/_search?*=:searchstring": "/$1/?$2_like=:searchstring",
"/api/*": "/$1"
DB.json
{
"cats": {
"cats": []
},
"bats": [],
"recordList": {
"records": [
{id:1, name: 'abc'},
{id:2, name: 'def'},
{id:3, name: 'ghi'}
]
}
}
使用上述配置绝对可以很好地获取记录列表。
需要了解如何模拟下面的搜索过滤器调用:
http:localhost:3001/api/_search?name=abc
将路线更新为:
{
"/api/*": "/$1",
"/api/_search?name_like": "/$1"
}
跟随此链接:https://github.com/typicode/json-server/issues/654#issuecomment-339098881
但未达到定义的配置URL,我在做什么错?我是吗 这里缺少什么?搜索词是动态的,因此值 只能从变量接受传递,但在注释中 是静态的。如果有人遇到类似问题,请提供帮助。 解决
如果搜索到“ abc”,则应返回
{
records: [{id: 1, name: 'abc'}]
}
答案 0 :(得分:1)
您需要这样编写搜索路线:
{
"/api/records/_search?name=:searchstring": "/records/?name_like=:searchstring"
}
甚至更好的是,您可以用*
到$1
替换进行参数化,这样就可以在查询中以及在任何records
或其他数据集中搜索任何参数:
{
"/api/*/_search?*=:searchstring": "/$1/?$2_like=:searchstring",
"/api/*": "/$1"
}
之后,您对http://localhost:3001/api/records/_search?name=ab
的请求将得到答复:
[
{
"id": 1,
"name": "abc"
}
]