快速创建模拟 REST API
JSON Server 是一个用于快速创建模拟 REST API 的工具,主要用在前端开发和原型设计中。
主要特点
零编码:只需一个 JSON 文件即可创建完整的 API
RESTful:自动提供完整的 REST API 端点
真实 HTTP:使用真实的 HTTP 请求(GET、POST、PUT、DELETE 等)
安装和使用
bash
安装
npm install -g json-server
创建 db.json 文件
{
"code":200,
"recordcounts":24,
"posts": [
{
"id": 1,
"project": "XX高速公路项目",
"contract": "HT2023001",
"days": 15,
"reason": "天气原因",
"applyDate": "2023-05-10",
"status": "completed",
"details": {
"applicant": "张三",
"department": "工程部",
"contact": "13800138000",
"amount": "125,000元",
"approval": "李四",
"approvalDate": "2023-05-25"
}
},
{
"id": 2,
"project": "YY大桥建设项目",
"contract": "HT2023005",
"days": 30,
"reason": "设计变更",
"applyDate": "2023-06-15",
"status": "pending",
"details": {
"applicant": "王五",
"department": "设计部",
"contact": "13900139000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 3,
"project": "ZZ市政工程",
"contract": "HT2023012",
"days": 7,
"reason": "材料供应延迟",
"applyDate": "2023-07-03",
"status": "completed",
"details": {
"applicant": "赵六",
"department": "采购部",
"contact": "13700137000",
"amount": "45,800元",
"approval": "钱七",
"approvalDate": "2023-07-15"
}
},
{
"id": 4,
"project": "AA水利工程",
"contract": "HT2023020",
"days": 45,
"reason": "政策调整",
"applyDate": "2023-08-22",
"status": "pending",
"details": {
"applicant": "孙八",
"department": "项目部",
"contact": "13600136000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 5,
"project": "BB城市改造项目",
"contract": "HT2023025",
"days": 20,
"reason": "居民协调问题",
"applyDate": "2023-09-10",
"status": "completed",
"details": {
"applicant": "周九",
"department": "协调部",
"contact": "13500135000",
"amount": "89,500元",
"approval": "吴十",
"approvalDate": "2023-09-30"
}
},
{
"id": 6,
"project": "CC电力工程",
"contract": "HT2023030",
"days": 12,
"reason": "设备故障",
"applyDate": "2023-10-05",
"status": "completed",
"details": {
"applicant": "郑十一",
"department": "电力部",
"contact": "13400134000",
"amount": "67,300元",
"approval": "王十二",
"approvalDate": "2023-10-20"
}
},
{
"id": 7,
"project": "XX高速公路项目",
"contract": "HT2023001",
"days": 15,
"reason": "天气原因",
"applyDate": "2023-05-10",
"status": "completed",
"details": {
"applicant": "张三",
"department": "工程部",
"contact": "13800138000",
"amount": "125,000元",
"approval": "李四",
"approvalDate": "2023-05-25"
}
},
{
"id": 8,
"project": "YY大桥建设项目",
"contract": "HT2023005",
"days": 30,
"reason": "设计变更",
"applyDate": "2023-06-15",
"status": "pending",
"details": {
"applicant": "王五",
"department": "设计部",
"contact": "13900139000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 9,
"project": "ZZ市政工程",
"contract": "HT2023012",
"days": 7,
"reason": "材料供应延迟",
"applyDate": "2023-07-03",
"status": "completed",
"details": {
"applicant": "赵六",
"department": "采购部",
"contact": "13700137000",
"amount": "45,800元",
"approval": "钱七",
"approvalDate": "2023-07-15"
}
},
{
"id": 10,
"project": "AA水利工程",
"contract": "HT2023020",
"days": 45,
"reason": "政策调整",
"applyDate": "2023-08-22",
"status": "pending",
"details": {
"applicant": "孙八",
"department": "项目部",
"contact": "13600136000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 11,
"project": "BB城市改造项目",
"contract": "HT2023025",
"days": 20,
"reason": "居民协调问题",
"applyDate": "2023-09-10",
"status": "completed",
"details": {
"applicant": "周九",
"department": "协调部",
"contact": "13500135000",
"amount": "89,500元",
"approval": "吴十",
"approvalDate": "2023-09-30"
}
},
{
"id": 12,
"project": "CC电力工程",
"contract": "HT2023030",
"days": 12,
"reason": "设备故障",
"applyDate": "2023-10-05",
"status": "completed",
"details": {
"applicant": "郑十一",
"department": "电力部",
"contact": "13400134000",
"amount": "67,300元",
"approval": "王十二",
"approvalDate": "2023-10-20"
}
},{
"id": 13,
"project": "XX高速公路项目",
"contract": "HT2023001",
"days": 15,
"reason": "天气原因",
"applyDate": "2023-05-10",
"status": "completed",
"details": {
"applicant": "张三",
"department": "工程部",
"contact": "13800138000",
"amount": "125,000元",
"approval": "李四",
"approvalDate": "2023-05-25"
}
},
{
"id": 14,
"project": "YY大桥建设项目",
"contract": "HT2023005",
"days": 30,
"reason": "设计变更",
"applyDate": "2023-06-15",
"status": "pending",
"details": {
"applicant": "王五",
"department": "设计部",
"contact": "13900139000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 15,
"project": "ZZ市政工程",
"contract": "HT2023012",
"days": 7,
"reason": "材料供应延迟",
"applyDate": "2023-07-03",
"status": "completed",
"details": {
"applicant": "赵六",
"department": "采购部",
"contact": "13700137000",
"amount": "45,800元",
"approval": "钱七",
"approvalDate": "2023-07-15"
}
},
{
"id": 16,
"project": "AA水利工程",
"contract": "HT2023020",
"days": 45,
"reason": "政策调整",
"applyDate": "2023-08-22",
"status": "pending",
"details": {
"applicant": "孙八",
"department": "项目部",
"contact": "13600136000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 17,
"project": "BB城市改造项目",
"contract": "HT2023025",
"days": 20,
"reason": "居民协调问题",
"applyDate": "2023-09-10",
"status": "completed",
"details": {
"applicant": "周九",
"department": "协调部",
"contact": "13500135000",
"amount": "89,500元",
"approval": "吴十",
"approvalDate": "2023-09-30"
}
},
{
"id": 18,
"project": "CC电力工程",
"contract": "HT2023030",
"days": 12,
"reason": "设备故障",
"applyDate": "2023-10-05",
"status": "completed",
"details": {
"applicant": "郑十一",
"department": "电力部",
"contact": "13400134000",
"amount": "67,300元",
"approval": "王十二",
"approvalDate": "2023-10-20"
}
},
{
"id": 19,
"project": "XX高速公路项目",
"contract": "HT2023001",
"days": 15,
"reason": "天气原因",
"applyDate": "2023-05-10",
"status": "completed",
"details": {
"applicant": "张三",
"department": "工程部",
"contact": "13800138000",
"amount": "125,000元",
"approval": "李四",
"approvalDate": "2023-05-25"
}
},
{
"id": 20,
"project": "YY大桥建设项目",
"contract": "HT2023005",
"days": 30,
"reason": "设计变更",
"applyDate": "2023-06-15",
"status": "pending",
"details": {
"applicant": "王五",
"department": "设计部",
"contact": "13900139000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 21,
"project": "ZZ市政工程",
"contract": "HT2023012",
"days": 7,
"reason": "材料供应延迟",
"applyDate": "2023-07-03",
"status": "completed",
"details": {
"applicant": "赵六",
"department": "采购部",
"contact": "13700137000",
"amount": "45,800元",
"approval": "钱七",
"approvalDate": "2023-07-15"
}
},
{
"id": 22,
"project": "AA水利工程",
"contract": "HT2023020",
"days": 45,
"reason": "政策调整",
"applyDate": "2023-08-22",
"status": "pending",
"details": {
"applicant": "孙八",
"department": "项目部",
"contact": "13600136000",
"amount": "待审核",
"approval": "待审批",
"approvalDate": "待审批"
}
},
{
"id": 23,
"project": "BB城市改造项目",
"contract": "HT2023025",
"days": 20,
"reason": "居民协调问题",
"applyDate": "2023-09-10",
"status": "completed",
"details": {
"applicant": "周九",
"department": "协调部",
"contact": "13500135000",
"amount": "89,500元",
"approval": "吴十",
"approvalDate": "2023-09-30"
}
},
{
"id": 24,
"project": "CC电力工程",
"contract": "HT2023030",
"days": 12,
"reason": "设备故障",
"applyDate": "2023-10-05",
"status": "completed",
"details": {
"applicant": "郑十一",
"department": "电力部",
"contact": "13400134000",
"amount": "67,300元",
"approval": "王十二",
"approvalDate": "2023-10-20"
}
}
],
"comments": [
{ "id": 1, "body": "Great post", "postId": 1 }
],
"profile": {
"name": "Jane Doe"
}
}
启动服务器
json-server --watch db.json --port 3000
自动生成的 API 端点
GET /posts
GET /posts/1
POST /posts
PUT /posts/1
PATCH /posts/1
DELETE /posts/1
GET /posts/1/comments # 关联数据
高级功能
过滤:/posts?title=json-server&author=typicode
分页:/posts?_page=1&_limit=10
排序:/posts?_sort=views&_order=asc
全文搜索:/posts?q=hello
关系:/posts/1/comments
使用场景
前端开发:在后端 API 完成前进行前端开发
原型设计:快速验证产品概念
测试:为自动化测试提供模拟数据
教学演示:REST API 教学示例
你想了解 JSON Server 的哪个特定方面呢?
浙公网安备 33010602011771号