json-server 使用场景及特点
在项目开发初期,后端接口和数据往往尚未完善,前端开发者通常需要依赖模拟数据来推进工作。如果你希望建立一个更灵活的本地服务器来模拟各种请求操作,而不是仅仅依赖静态数据,那么json-server将是你的理想选择。json-server 可以根据请求的特定路径后缀来返回不同的模拟数据,从而为你的前端开发提供更加逼真的测试环境,以便在开发过程中与客户共享模式或支持端到端测试,无需编写后端代码。
快速部署
json-server 允许开发者在几秒钟内搭建一个 REST API 服务器
支持 CRUD 操作
可以对数据执行创建、读取、更新和删除操作,模拟完整的数据交互
无需编码
通过静态 JSON 文件模拟 API 响应,无需编写后端代码
HTTP 请求处理
支持所有标准的 HTTP 请求方法(GET, POST, PUT, DELETE 等)
自定义路由
开发者可以根据需求创建自定义路由,处理复杂场景
与 HTTPie 集成
使用 HTTPie JSON 客户端轻松与 json-server 交互
静态 JSON 数据库
json-server 使用静态 JSON 文件作为数据库,方便管理和模拟数据
模拟错误
可以模拟各种 API 错误,帮助开发者测试错误处理逻辑
速率限制模拟
对于依赖于速率限制的 API,可以模拟响应,进行无限次数的调用
示例
以下为您展示一些简单的使用 Fetch API 的示例, 您可以将代码复制粘贴到浏览器控制台中,快速测试 JSONPlaceholder。如果要查看更多的示例,请点击 技术文档
请求一篇文章内容
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => response.json())
.then(json => console.log(json))
请求所有文章内容
fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(json => console.log(json))
请求文章评论
fetch('https://jsonplaceholder.typicode.com/posts/1/comments')
.then(response => response.json())
.then(json => console.log(json))
创建一篇文章
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1,
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json));
重要提示 文章实际上不会被服务器创建,但会模拟出创建的效果。
更新一篇文章
fetch('https://jsonplaceholder.typicode.com/posts/1', {
method: 'PUT',
body: JSON.stringify({
id: 1,
title: 'foo',
body: 'bar',
userId: 1,
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json));
重要提示 文章实际上不会被服务器更新,但会模拟出更新的效果。
删除一篇文章
fetch('https://jsonplaceholder.typicode.com/posts/1', {
method: 'DELETE',
});
重要提示 文章实际上不会被服务器删除,但会模拟出删除的效果。
过滤文章
各种查询参数支持基本的过滤功能。
// 这里会返回属于第一个用户的所有文章
fetch('https://jsonplaceholder.typicode.com/posts?userId=1')
.then((response) => response.json())
.then((json) => console.log(json));
列出嵌套资源
可以访问一级嵌套的路由。
// 等价于访问 /comments?postId=1
fetch('https://jsonplaceholder.typicode.com/posts/1/comments')
.then((response) => response.json())
.then((json) => console.log(json));