查询条件

乙醇 创建于 7 个月 之前

最后更新时间 2018-09-11

json server默认提供了一系列的查询参数,非常灵活。

数据源

数据源还是db.json,内容如下:

{
  "posts": [
    { "id": 1, "title": "json server入门", "author": "乙醇" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

运行mock server

在命令行中运行

json-server --watch db.json

过滤器

指定过滤字段,使用.来访问具体属性

GET /posts?title=json-server&author=typicode
GET /posts?id=1&id=2
GET /comments?author.name=typicode

分页

分页也是常用功能,使用_page指定第几页,_limit指定返回的数据条数。

在Link header 我们可以拿到first, prev, next 和 last 链接的相关信息。

默认1页返回10条数据。

GET /posts?_page=7
GET /posts?_page=7&_limit=20

排序

_sort 表示排序字段,_order 表示具体的排序方式,默认是升序。


GET /posts?_sort=views&_order=asc
GET /posts/1/comments?_sort=votes&_order=asc

也支持多字段排序


GET /posts?_sort=user,views&_order=desc,asc

切片

  • _start指定纪录起始点,包含起点
  • _end指定终点,不包含终点
  • _limit指定返回的数量
  • X-Total-Count中会返回所有的纪录数

GET /posts?_start=20&_end=30
GET /posts/1/comments?_start=20&_end=30
GET /posts/1/comments?_start=20&_limit=10

操作

  • _gte: 大于
  • _lte: 小于
  • _ne: 不等于
  • _like: 有点像sql的like,支持正则表达式
GET /posts?views_gte=10&views_lte=20
GET /posts?id_ne=1
GET /posts?title_like=server

全文搜索

使用q参数,比如

GET /posts?q=internet

关联

  • _embed: 包含子资源
  • _expand: 包含父资源
GET /posts?_embed=comments
GET /posts/1?_embed=comments

GET /comments?_expand=post
GET /comments/1?_expand=post

特别的,创建的时候也可以进行关联

POST /posts/1/comments

查看db


GET /db

欢迎关注公众号测试圈TC

我要留言

暂无评论