快速创建模拟 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 的哪个特定方面呢?

posted @ 2025-11-05 16:52  冀未然  阅读(9)  评论(0)    收藏  举报