首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[开源]JSON Server:5 分钟搭建 RESTful 模拟 API 服务器

[开源]JSON Server:5 分钟搭建 RESTful 模拟 API 服务器

作者头像
DevLlama
发布2026-06-01 20:35:35
发布2026-06-01 20:35:35
850
举报

在前端开发中,后端接口未就绪是常有的事,反复等待、联调低效成了痛点。而json-server这款轻量级工具,能让你仅靠一个 JSON 文件,5 分钟内搭建出支持完整 CRUD 的 RESTful API 服务器,完美解决接口模拟需求。本文带你从入门到进阶,吃透json-server的所有核心用法。

🚀 1. 项目简介

json-server 是一款基于 Node.js 的轻量级 RESTful API 模拟工具,仅需一个 JSON 文件,即可在几秒内启动一个功能完整的本地 API 服务器。它完美支持 GET/POST/PUT/PATCH/DELETE 等标准 HTTP 方法,内置分页、过滤、排序、关联查询等常用后端功能,是前端开发者在接口未就绪时进行独立开发、联调与测试的利器。


⚖️ 2. 开源协议

采用MIT开源协议


🔑 3. 核心特性

  1. 1. 零代码快速生成 RESTful API 无需编写任何后端逻辑,只需提供一个结构化的 db.json 文件,即可自动生成符合 REST 规范的完整 CRUD 接口。
  2. 2. 开箱即用,极速上手 全局安装后一条命令即可启动服务,支持热重载(--watch),数据变更实时生效,开发体验流畅。
  3. 3. 强大内置查询能力
    • 过滤?author=xxx?title_like=关键词?views_gte=100
    • 分页?_page=2&_limit=10(响应头含 X-Total-Count
    • 排序?_sort=views&_order=desc
    • 关联查询?_embed=comments(嵌入子资源)、?_expand=post(展开父资源)
  4. 4. 高度可扩展
    • • 支持自定义路由映射(如 /api/posts/posts
    • • 可通过中间件模拟网络延迟、添加请求头、注入时间戳等
    • • 支持静态文件服务与 CORS 跨域,适配现代前端开发环境
  5. 5. 数据持久化 & 实时同步 所有写操作(POST/PUT/PATCH/DELETE)自动持久化回 JSON 文件,方便版本控制与团队共享 mock 数据。
  6. 6. 灵活部署方式 既可全局命令行运行,也可作为项目依赖集成到 package.json 脚本中,或通过自定义 server.js 实现高级配置。

🛠️ 4. 技术栈

  • • 运行环境:Node.js
  • • 核心依赖:Express.js(底层 Web 框架)
  • • 开发语言:JavaScript / TypeScript(社区生态丰富)
  • • 功能封装:内置路由生成器、查询解析器、CORS 中间件等

📸 5. 环境与安装

快速启动(推荐全局安装)
代码语言:javascript
复制
# 安装
npm install -g json-server

# 创建 db.json(示例数据)
echo '{
  "posts": [
    { "id": 1, "title": "Hello json-server", "author": "dev" }
  ]
}' > db.json

# 启动服务(默认端口 3000)
json-server --watch db.json
项目级集成(避免全局依赖)
代码语言:javascript
复制
# 安装为开发依赖
npm install json-server --save-dev

# package.json 中添加脚本
{
  "scripts": {
    "mock": "json-server --watch db.json --port 3001"
  }
}

# 启动
npm run mock
高级用法:自定义 server.js
代码语言:javascript
复制
// server.js
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()

server.use(middlewares)
server.use((req, res, next) => {
  if (req.method === 'POST') req.body.createdAt = Date.now()
  next()
})
server.use(router)
server.listen(3000, () => console.log('Mock API running on http://localhost:3000'))

启动:node server.js


🎯 6. 适用场景

  • • 前端在后端接口未完成时进行独立开发与 UI 联调
  • • 快速搭建原型 Demo 或技术验证(PoC)所需的数据服务
  • • 编写自动化测试时模拟真实 API 响应
  • • 教学演示 RESTful API 设计规范
  • • 小型项目临时数据存储(仅限开发/测试环境)

⚠️ 重要提醒禁止用于生产环境! 因其基于文件 I/O,无权限控制、无并发保障、无数据校验,仅适用于本地开发与测试。


🌐 7. 项目开源地址

  • • GitHub 开源地址:https://github.com/typicode/json-server
  • • 在线 Playground:https://my-json-server.typicode.com/

✅ 8. 总结

json-server 以“极简、高效、灵活”的设计理念,将复杂的后端接口模拟简化为一个 JSON 文件 + 一条命令,极大提升前端开发效率。无论是日常开发、教学还是快速验证,它都是不可或缺的开发神器。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevLlama 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀 1. 项目简介
  • ⚖️ 2. 开源协议
  • 🔑 3. 核心特性
  • 🛠️ 4. 技术栈
  • 📸 5. 环境与安装
    • 快速启动(推荐全局安装)
    • 项目级集成(避免全局依赖)
    • 高级用法:自定义 server.js
  • 🎯 6. 适用场景
  • 🌐 7. 项目开源地址
  • ✅ 8. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档