json-server详解
2023-12-19 20:51:23
json-server的启动参数:
- –watch / -w: 指定要监听哪个JSON文件的变化并重新加载JSON Server。
- –port / -p: 指定要使用的端口号,默认情况下为3000。
- –routes / -r: 提供一个路由配置文件以定制路由行为。
- –middlewares / -m: 提供一个中间件配置文件以扩展JSON Server的功能。
- –static / -s: 指定一个静态文件夹,JSON Server将静态服务器与JSON API服务器结合起来。
- –delay / -d: 模拟API响应的延迟时间,以便测试加载状态下的用户体验。
- –id / -i: 指定JSON对象的ID字段名称,默认为"id"。
- –no-cors: 禁用跨域资源共享。
- –no-gzip: 禁用Gzip压缩。
- –snapshots / -S: 指定要使用的快照文件夹,以便保存当前的JSON数据库状态。
- –quiet / -q: 减少输出,仅在发生错误时输出。
- –help / -h: 显示帮助信息。
- –version / -v: 显示JSON Server的版本信息。
模糊查询
使用**属性名_like
**就可以模糊查询了。
/users?name`_like`=John
对象的操作
使用对象名.
属性名就可以模糊查询了。
/users?obj.name=John
分页
可以使用query传参的方式传递 _page
和 _limit
_page
和_limit
都可以不传,_page
默认是1,_limit
默认是10
排序
可以使用query传参的方式传递 _sort
和 _order
_sort
传值为属性名,例如name
。
_order
可以不传,_order
默认是asc
(升序)
_order
的还有一个参数desc
(倒序)
_sort
可以通过,
连接传递多个值,如果要使用_order
时,可以传一个或两个值
/posts?_sort=user,views&_order=desc,asc
ID范围查询
_end
可以单独使用
_limit
和_start
需要配合使用
/posts?_start=20&_end=30
/posts/1/comments?_start=20&_end=30
/posts/1/comments?_start=20&_limit=10
范围查询
属性_gte
和属性_lte
都可以单独使用
/posts?views_gte=10&views_lte=20
全局查询
使用q
进行全局查询
/posts?q='属性值'
以上属性是可以联合使用的
自定义路由
要实现自定义路由,可以在启动时使用–routes参数指定一个JSON文件来配置路由。
话不多说上代码:
db.json
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" },
{ "id": 2, "title": "test", "author": "test" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 },
{ "id": 2, "body": "some comment", "postId": 2 }
]
}
routes.json
{
"/posts/:id/comments": "/comments/?postId=:id",
}
这个路由配置将/posts/:id/comments请求映射到/comments/?postId=:id上,而其他请求将被直接映射到与请求路径相同的JSON文件路径上。
启动JSON Server:
json-server --watch db.json --routes routes.json
现在,当你向/posts/1/comments
发送请求时,会返回包含postId为1的所有评论的JSON对象,而/posts`请求会返回posts数组。
文章来源:https://blog.csdn.net/qiaozhilian/article/details/132766858
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!