json-server详解

发布时间:2023年12月19日

json-server的启动参数:

  1. –watch / -w: 指定要监听哪个JSON文件的变化并重新加载JSON Server。
  2. –port / -p: 指定要使用的端口号,默认情况下为3000。
  3. –routes / -r: 提供一个路由配置文件以定制路由行为。
  4. –middlewares / -m: 提供一个中间件配置文件以扩展JSON Server的功能。
  5. –static / -s: 指定一个静态文件夹,JSON Server将静态服务器与JSON API服务器结合起来。
  6. –delay / -d: 模拟API响应的延迟时间,以便测试加载状态下的用户体验。
  7. –id / -i: 指定JSON对象的ID字段名称,默认为"id"。
  8. –no-cors: 禁用跨域资源共享。
  9. –no-gzip: 禁用Gzip压缩。
  10. –snapshots / -S: 指定要使用的快照文件夹,以便保存当前的JSON数据库状态。
  11. –quiet / -q: 减少输出,仅在发生错误时输出。
  12. –help / -h: 显示帮助信息。
  13. –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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。