JSON Server 详细使用教程

简介

JSON Server 是一个非常实用的工具,可以让你快速搭建一个模拟 REST API。它可以基于一个 JSON 文件快速创建一个全功能的假 REST API,非常适合前端开发时做原型或 mock 数据。本文将详细介绍 JSON Server 的安装和使用方法。

安装

JSON Server 是一个 Node.js 模块,可以通过 npm 安装:

npm install -g json-server
创建 JSON 数据文件

首先创建一个 JSON 文件,例如 db.json:

{"posts": [{ "id": 1, "title": "json-server", "author": "typicode" }],"comments": [{ "id": 1, "body": "some comment", "postId": 1 }],"profile": { "name": "typicode" }
}
启动服务器

在命令行中,进入 db.json 所在目录,运行:

json-server --watch db.json

现在,你就可以通过 http://localhost:3000 访问你的 API 了。

API 路由

JSON Server 会根据你的 JSON 文件自动生成以下路由:

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

类似地,其他顶级属性(如 comments, profile)也会生成对应的路由。

高级用法

        自定义路由

你可以创建一个 routes.json 文件来自定义路由:

{"/api/*": "/$1","/:resource/:id/show": "/:resource/:id","/posts/:category": "/posts?category=:category","/articles\\?id=:id": "/posts/:id"
}

然后启动服务器时使用 --routes 选项:

json-server db.json --routes routes.json

        使用中间件

你可以使用 JSON Server 的中间件来添加自定义逻辑。创建一个 middleware.js 文件:

module.exports = (req, res, next) => {if (req.method === 'POST') {req.body.createdAt = Date.now()}next()
}

然后在启动服务器时使用 --middlewares 选项:

json-server db.json --middlewares ./middleware.js

        生成随机数据

JSON Server 使用 Faker.js 来生成随机数据。你可以在 db.json 中使用 JS 代码来生成数据:

module.exports = () => {const data = { users: [] }for (let i = 0; i < 50; i++) {data.users.push({ id: i, name: `user${i}` })}return data
}

        全文搜索

JSON Server 支持全文搜索,只需在 GET 请求中添加 q 参数:

GET /posts?q=internet

        关系

你可以在资源之间建立父子关系:

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

        分页

JSON Server 默认支持分页,使用 _page_limit 参数:

GET /posts?_page=7&_limit=20

        部署

JSON Server 可以很容易地部署到各种平台,如 Heroku、Now 等。你只需要创建一个简单的 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(router)
server.listen(3000, () => {console.log('JSON Server is running')
})

然后按照各平台的部署指南进行部署即可。

总结

JSON Server 是一个强大而灵活的工具,可以快速创建模拟 REST API。它不仅适用于前端开发的原型设计和测试,也可以用于后端开发的 API 设计和文档编写。通过本教程,你应该能够掌握 JSON Server 的基本使用方法,并能够根据需要进行更高级的配置和使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UNIAPP 使用地图 百度 高德 腾讯地图路线轨迹

这里写自定义目录标题 UNIAPP 使用地图 百度 高德 腾讯地图路线轨迹链接: [插件](https://ext.dcloud.net.cn/plugin?id18892/).路线轨迹首先需要申请开发者中心 的key值必须导入插件复制下面代码 替换KEY值申请key值以后 只需要传开始和结束的经度纬度即可** UNIAPP 使用地图…

FastAPI 学习之路(三十四)数据库多表操作

之前我们分享的是基于单个表的数据库表的操作&#xff0c;我们在设计数据库的时候也设计了跨表&#xff0c;我们可以看下数据库的设计 class User(Base):__tablename__ "users"id Column(Integer, primary_keyTrue, indexTrue)email Column(String(10), uniqueTr…

网络基础——udp协议

UDP协议&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是OSI&#xff08;Open System Interconnection&#xff0c;开放式系统互联&#xff09;参考模型中一种无连接的传输层协议&#xff0c;它提供了一种简单的、不可靠的数据传输服务。以下是关于…

《昇思25天学习打卡营第7天 | mindspore 模型训练常见用法》

1. 背景&#xff1a; 使用 mindspore 学习神经网络&#xff0c;打卡第7天&#xff1b; 2. 训练的内容&#xff1a; 使用 mindspore 的模型训练的常见用法&#xff0c;基本上是将前几章节的功能串起来 3. 常见的用法小节&#xff1a; 模型训练的常见流程&#xff0c;如数据…

不想成为失业大军,就要学习六西格玛?

最近&#xff0c;优思学院收到一封邮件&#xff0c;这封邮件的发送者是一位完成了我们六西格玛绿带课程的学生。 他的公司裡有20%的工程师被裁员&#xff0c;但值得注意的是&#xff0c;留下来的工程师中有70%人竟然都持有六西格玛绿带或黑带证书。 他的公司不仅希望利用这些…

el-table封装popver組件,点击列筛选行数据功能,支持筛选,搜索,排序功能

子组件&#xff1a; <template><div class"tableTool" ref"tableTool" click.stop><el-button click"shengFnc">升序</el-button><el-button click"jiangFnc">降序</el-button><el-input v-m…

安卓 APK 安装过程详解

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Android ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 开机后连上网线 2. 查看网线的IP地址 3. 检查ADB连接 4. 修改文件权限 步骤 结语 我的其他博客 前言 在安卓设备上安装…

容器之docker compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件&#xff0c;您可以配置应用程序需要的所有服务&#xff0c;并使用单个命令来创建和启动这些服务。以下是对 Docker Compose 的详细介绍&#xff1a; 核心概念 服务&#xff08;Services&am…

python批量读取Excel数据写入word

from docx import Document from docx.shared import Pt from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ROW_HEIGHT_RULE import os import pandas as pd from docx import Document from docx.oxml.ns import qn from docx.shared import Pt # ... 其他代码 ... work…

加密市场重新定位:全球流动性困境下的转型之痛

随着ETF通道的打开&#xff0c;加密市场所期待的“泼天资金量”并未达预期&#xff0c;全球金融市场的流动性匮乏问题蔓延至加密市场。新通道的打开也意味着之前那个复杂且成熟市场的规则随之与加密市场的文化与投资逻辑相碰撞。于是&#xff0c;加密市场从一个近乎封闭的避风港…

python3 ftplib乱码怎么解决

其实很简单。ftplib.FTP里面有个参数叫encoding。 如上图最后一行。所以在使用FTP时&#xff0c;主动指定编码格式即可。 ftp ftplib.FTP() ftp.encoding "utf-8" 再使用就可以了。

!vue3中defineEmits接收父组件向子组件传递方法,以及方法所需传的参数及类型定义,避免踩坑!

使用说明 1、在子组件中调用defineEmits并定义要发射给父组件的方法 const emits defineEmits([‘foldchange’]) 2、使用defineEmits会返回一个方法&#xff0c;使用一个变量emits(变量名随意)去接收 3、在子组件要触发的方法中&#xff0c;调用emits并传入发射给父组件的方法…

Kimi携手思维链,点亮论文写作之路!

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在学术的海洋中&#xff0c;思想的火花常常在静谧的图书馆角落或深夜的电脑屏幕前迸发。今天分享的内容是一种高阶的论文写作方法&#xff1a;Kimi思维链。 Kimi&#xff0c;一个由月之…

【数据结构和算法的概念等】

目录 一、数据结构1、数据结构的基本概念2、数据结构的三要素2.1 数据的逻辑结构2.2 数据的存储&#xff08;物理&#xff09;结构2.3 数据的运算 二、算法1、算法概念2、算法的特性及特点3、算法分析 一、数据结构 1、数据结构的基本概念 数据&#xff1a; 是所有能输入到计…

D634-341C电液伺服系统比例控制阀 R40KO2M0NSS2

D634-341C/R40KO2M0NSS2宁波秉圣现货供应 宁波秉圣工业技术有限公司是一家专门从事于欧洲,美国等多国家的进口备件进出口销售、技术咨询、技术服务、自动化设备服务为一体的贸易公司。公司的优势品牌如下&#xff1a;德国REXROTH&#xff08;力士乐&#xff09;、德国MOOG、美…

全球数字贸易中心解析_保税区保的是什么税_为什么保税区还要交税

保税区税收机制深度解析&#xff1a;保税免的是什么税&#xff1f;为何仍需缴税&#xff1f; 保税区概述 保税区&#xff0c;作为海关特殊监管区域的重要一环&#xff0c;享有国家高度开放的政策优惠与功能齐全的海关监管服务。它专为保税加工、保税物流和保税服务而设&#…

【Python】已解决:ModuleNotFoundError: No module named ‘pip‘(重新安装pip的两种方式)

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例 四、重新安装pip的两种方式方式一&#xff1a;使用get-pip.py脚本方式二&#xff1a;使用ensurepip模块五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named ‘pip’&#xff08;重新安装pip的…

GLM4大模型微调入门实战-命名实体识别(NER)任务

[GLM4]是清华智谱团队最近开源的大语言模型。 以GLM4作为基座大模型&#xff0c;通过指令微调的方式做高精度的命名实体识别&#xff08;NER&#xff09;&#xff0c;是学习入门LLM微调、建立大模型认知的非常好的任务。 显存要求相对较高&#xff0c;需要40GB左右。 知识点1&…

Unity之王牌飞行员申请出战

目录 &#x1f4da;一、准备工作 &#x1f4bb;二、飞机的两套控制器 &#x1f3ae;2.1 起飞前 &#x1f579;️2.2 起飞后 &#x1f680;三、实现射击功能 &#x1f4a5;3.1 射击脚本 &#x1f4a5;3.2 爆炸脚本 &#x1f4a5;3.3 爆炸特效脚本 &#x1f6e0;️四、组…

系统卡顿原因,jbd2 , cat /proc/interrupts, 网络ssh

https://zhuanlan.zhihu.com/p/582827171 cat /proc/interrupts, cat /proc/stat_cat proc stat-CSDN博客 Linux 系统运行速度太慢的关键原因全都在这了-腾讯云开发者社区-腾讯云 结论 虽然有很多因素可能导致系统缓慢&#xff0c;但CPU、内存和磁盘I/O是导致绝大多数性能问…