Mit*_*tsa 1 json mocking json-server
我有routes.json和db.json
路线
"/api/*/_search?*=:searchstring": "/$1/?$2_like=:searchstring",
"/api/*": "/$1"
Run Code Online (Sandbox Code Playgroud)
数据库文件
{
"cats": {
"cats": []
},
"bats": [],
"recordList": {
"records": [
{id:1, name: 'abc'},
{id:2, name: 'def'},
{id:3, name: 'ghi'}
]
}
}
Run Code Online (Sandbox Code Playgroud)
使用上述配置获取记录列表绝对没问题。
需要了解如何模拟下面的搜索过滤器调用:
http:localhost:3001/api/_search?name=abc
Run Code Online (Sandbox Code Playgroud)
将路由更新为:
{
"/api/*": "/$1",
"/api/_search?name_like": "/$1"
}
Run Code Online (Sandbox Code Playgroud)
按照此链接:https : //github.com/typicode/json-server/issues/654#issuecomment-339098881
但是没有点击定义的配置 URL,我做错了什么?我在这里错过了什么吗?搜索词是动态的,因此传递的值应该只能从变量中接受,但在注释中它是静态的。如果有人遇到类似问题并已解决,请对此提供帮助
如果搜索 'abc',它应该返回
{
records: [{id: 1, name: 'abc'}]
}
Run Code Online (Sandbox Code Playgroud)
你需要像这样写你的搜索路线:
{
"/api/records/_search?name=:searchstring": "/records/?name_like=:searchstring"
}
Run Code Online (Sandbox Code Playgroud)
甚至更好,你可以用参数化*来$1进行替换,从而你将能够搜索查询的任何参数,并且在任何数据集,records或其他:
{
"/api/*/_search?*=:searchstring": "/$1/?$2_like=:searchstring",
"/api/*": "/$1"
}
Run Code Online (Sandbox Code Playgroud)
之后您的请求http://localhost:3001/api/records/_search?name=ab将与响应:
[
{
"id": 1,
"name": "abc"
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8508 次 |
| 最近记录: |