Json-Server 快速搭建Json服务器

Json-server

不到30秒的时间内获得一个完整的伪REST API 零编码

为需要快速后端原型和模拟的前端开发人员使用

GitHub - typicode/json-server:在不到30秒的时间内获得零编码的完整伪REST API

开始使用

安装 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

json-server --watch db.json

现在如果你去http://localhost:3000/posts/1,你会得到

{ "id": 1, "title": "json-server", "author": "typicode" }

另外,在提出请求时,最好知道:

  • 如果您请求POST、PUT、PATCH或DELETE,更改将使用lowdb.)自动安全地保存到db.json
  • 您的请求体JSON应该是对象封闭的,就像GET输出一样。(例如{“name”:“foobar”})。
  • ID值不可更改。PUT或PATCH请求正文中的任何id值都将被忽略。只有在POST请求中设置的值才会被接受,但前提是尚未采用该值。
  • POST、PUT或Patch请求需要包含Content-Type:Application/json头部,才能在请求Body中使用JSON。否则,它将返回2XX状态代码,但不会对数据进行更改。

路由

基于前面的db.json文件,这里是所有的默认路由。您也可以使用--routes添加[其他路由]。

多条路线

GET    /posts
GET    /posts/1
POST   /posts
PUT    /posts/1
PATCH  /posts/1
DELETE /posts/1

单条路线

GET    /profile
POST   /profile
PUT    /profile
PATCH  /profile

过滤 / 筛选

使用.访问深层属性

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

分页

可以使用_page,也可以选择_limit对返回的数据进行分页。

Link头中,您将获得firstprevistnextlast链接。

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

10 items are returned by default

排序

添加_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

Works exactly as Array.slice (i.e. _start is inclusive and _end exclusive)

运算符

添加_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

获取或创建嵌套资源(默认为一个级别,添加自定义routes了解更多信息])

GET  /posts/1/comments
POST /posts/1/comments

数据库

GET /db

主页

返回默认索引文件或服务/public目录

GET /
posted @ 2022-11-16 19:03  Redskaber  阅读(515)  评论(0)    收藏  举报