JSON Server
模拟数据接口
开始
安装
npm install -g json-server
创建一个 db.json 文件
{
"posts": [{ "id": 1, "title": "json-server", "author": "typicode" }],
"comments": [{ "id": 1, "body": "some comment", "postId": 1 }],
"profile": { "name": "typicode" }
}
启动
json-server --watch db.json
注意:
- POST, PUT, PATCH, DELETE 请求带来的改变会出现在 db.json 中
- 请求体必须是对象
- id 不可变。使用 PUT / PATCH 请求改变 id 的值将会被忽略,用 POST 创建的 id 也不能与已有的重复
- POST / PUT / PATCH 请求必须设置
Content-Type: application/json
路由
默认路由
基于上述的 db.json,所有的默认路由如下:
路由 | 描述 |
---|---|
GET /posts | 所有的 posts |
GET /posts/1 | 单个 post |
GET /profile | profile 对象 |
POST /posts | 创建一个 post |
POST /profile | 创建一个 profile |
PUT /posts/1 | 替换一个 post |
PUT /profile | 替换一个 profile |
PATCH /posts/1 | 更新一个 post |
PATCH /profile | 更新一个 profile |
DELETE /posts/1 | 删除一个 post |
过滤
用 .
访问深层属性
GET /posts?title=json-server&author=typicode
GET /comments?author.name=typicode
分页
GET /posts?_page=7
GET /posts?_page=7&_limit=20 # _limit 默认为 10
排序
默认升序,降序加 _order=desc
GET /posts?_sort=views
GET /posts/1/comments?_sort=votes&_order=desc
# 多个字段排序
GET /posts?_sort=user,views&_order=desc,asc
切片
行为同 Array.slice,不包含 _end
GET /posts?_start=20&_end=30
GET /posts/1/comments?_start=20&_end=30
GET /posts/1/comments?_start=20&_limit=10
操作符
_gte
_lte
,取得范围内的值
GET /posts?views_gte=10&views_lte=20
_ne
,排除值
GET /posts?id_ne=1
_like
,模糊查询(可以使用 RegExp)
GET /posts?title_like=server
全文搜索
q
参数,搜索所有的字段
GET /posts?q=internet
关系
_embed
,获取子资源
GET /posts?_embed=comments
GET /posts/1?_embed=comments
_expand
,获取父资源
GET /comments?_expand=post
GET /comments/1?_expand=post
创建或者获取嵌套资源
GET /posts/1/comments
POST /posts/1/comments