零代码Mock神器:json-server 快速上手

零代码Mock神器:json-server 快速上手

30秒搭建完整REST API,前端开发不再等待后端

在前后端分离开发中,我们经常遇到这样的场景:前端页面已经完成,但后端接口还未就绪。json-server 正是解决这一痛点的神奇工具!

什么是json-server?

json-server 是一个基于Node.js的零配置工具,只需一个JSON文件,就能立即获得完整的RESTful API接口,支持所有CRUD操作。

核心优势

  • ⚡️ 30秒搭建 - 无需后端知识
  • 🔄 实时热重载 - 文件修改自动生效
  • 📚 功能完整 - 支持过滤、分页、排序等
  • 🎯 真实模拟 - 完整的REST API体验

完整使用指南

1. 安装与启动

bash 复制代码
# 全局安装
npm install -g json-server

# 创建数据文件 db.json
{
  "posts": [
    { "id": 1, "title": "json-server教程", "author": "张三", "views": 100 },
    { "id": 2, "title": "前端开发实战", "author": "李四", "views": 200 }
  ],
  "comments": [
    { "id": 1, "body": "很好用", "postId": 1 },
    { "id": 2, "body": "学习到了", "postId": 2 }
  ],
  "users": [
    { "id": 1, "name": "王五", "role": "admin" }
  ]
}

# 启动服务
json-server --watch db.json --port 3000

2. 自动生成的API

启动后立即获得以下接口:

方法 端点 说明
GET /posts 获取所有文章
GET /posts/1 获取ID=1的文章
POST /posts 创建新文章
PUT /posts/1 替换文章
PATCH /posts/1 部分更新
DELETE /posts/1 删除文章

3. 高级查询功能

筛选过滤

javascript 复制代码
// 前端调用示例
fetch('/posts?author=张三')
fetch('/posts?views_gte=150')  // 浏览量≥150
fetch('/posts?title_like=教程') // 标题包含"教程"

分页排序

javascript 复制代码
// 分页:第2页,每页5条
fetch('/posts?_page=2&_limit=5')

// 排序:按浏览量降序
fetch('/posts?_sort=views&_order=desc')

// 多字段排序
fetch('/posts?_sort=user,views&_order=asc,desc')

关联查询

javascript 复制代码
// 获取文章及其评论
fetch('/posts?_embed=comments')

// 获取评论及对应文章信息
fetch('/comments?_expand=post')

// 嵌套路由:获取某篇文章的所有评论
fetch('/posts/1/comments')

4. 实用配置技巧

添加网络延迟

bash 复制代码
json-server --watch db.json --delay 1000

只读模式(防止误修改)

bash 复制代码
json-server --watch db.json --read-only

自定义脚本(package.json)

json 复制代码
{
  "scripts": {
    "mock": "json-server db.json --watch --delay 800 --port 3000",
    "mock:readonly": "json-server db.json --read-only"
  }
}

5. 前端集成示例

javascript 复制代码
// API调用封装
class MockAPI {
  static baseURL = 'http://localhost:3000';
  
  // 获取文章列表
  static async getPosts(params = {}) {
    const query = new URLSearchParams(params).toString();
    const response = await fetch(`${this.baseURL}/posts?${query}`);
    return await response.json();
  }
  
  // 创建文章
  static async createPost(post) {
    const response = await fetch(`${this.baseURL}/posts`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(post)
    });
    return await response.json();
  }
}

// 使用示例
const posts = await MockAPI.getPosts({ 
  _page: 1, 
  _limit: 10,
  _sort: 'views',
  _order: 'desc'
});

适用场景

  1. 前后端并行开发 - 前端不阻塞,独立开发测试
  2. 原型演示 - 快速搭建可交互原型
  3. 测试验证 - 模拟各种边界数据场景
  4. 团队协作 - 统一Mock数据规范

总结

json-server 以其简单易用的特性,成为前端开发者的必备工具。只需一个JSON文件,就能获得功能完整的Mock服务器,大大提升了开发效率。


关注公众号" 大前端历险记",获取更多前端开发干货!

相关推荐
用户059540174463 小时前
LLM对话记忆测试踩坑实录:手工回归30分钟,自动化后2分钟发现3个隐藏Bug
前端·css
Ashley的成长之路4 小时前
前端性能优化实战手册·第2篇:资源加载策略全解
前端·性能优化·资源加载·http/3·性能优化实战·资源加载优化
浅水壁虎4 小时前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥4 小时前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
Getflare4 小时前
前端 + UI 设计 + AI:这不是三个工种,是一个新三角能力模型(附自检清单)
前端·人工智能·ui
oil欧哟4 小时前
我做了一个 Vibe Coding 术语学习站:VibeHub
前端·ai·agent·独立开发·vibe coding
审小匠OpenCPAi5 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计
Revolution615 小时前
一个公共表格组件,是怎么一步步失控的
前端·前端工程化
腻害兔5 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?
java·前端·javascript·vue.js·产品经理·ai编程