前端开发工程师的一个常见任务是模拟后端 REST 服务,以 JSON 格式向前端应用程序返回一些数据,并确保一切都按预期运行。
当然,你可以设置一个完整的后端服务器,例如使用 Node.js、Express 和 MongoDB。然而,这需要一些时间,一个更简单的方案可以加快前端开发速度。
JSON Server 是一个简单的项目,它可以帮你快速搭建带有 CRUD 操作的 REST API。这个项目的网站是 https://github.com/typicode/json-server 。
接下来,你将学习如何设置 JSON Server 并发布一个示例 REST API。此外,你将了解如何使用另一个库 Faker.js 为 REST API 生成假数据。
JSON Server 以 NPM 包的方式可供使用。可以用 npm 命令安装它:
$ npm install -g json-server
增加了 -g 参数可以确保此包以全局的形式安装到系统里。
现在我们新建一个名为 db.json 的文件。此文件包含了会被 REST API 使用的数据。对于 JSON 结构中包含的对象,CRUD API 可以自动创建它们。假设我们的 db.json 文件内容如下:
{ "employees": [ { "id": 1, "first_name": "Sebastian", "last_name": "Eschweiler", "email": "sebastian@codingthesmartway.com" }, { "id": 2, "first_name": "Steve", "last_name": "Palmer", "email": "steve@codingthesmartway.com" }, { "id": 3, "first_name": "Ann", "last_name": "Smith", "email": "ann@codingthesmartway.com" } ] }
上述 JSON 数据由三个 employee 对象组成,每个对象由四个属性构成:id, first_name, last_name 和 email。
运行如下命令启动 JSON Server:
$ json-server --watch db.json
我们需要把包含 JSON 数据结构的文件(db.json) 以参数的方式传递进去。此外,我们还使用了 watch 参数。通过使用这个参数,我们确保服务器在监视模式下启动,也就是说它会监视文件变动并更新提供的 API。
现在可以在浏览器中访问 http://localhost:3000 然后可以看到如下的界面:
从上面的截图可以看到 employees API 已经被成功识别了。现在点击 employees 链接会发送一个 HTTP GET 请求到 http://localhost:3000/employees 显示如下:
JSON Server 会自动创建如下的 HTTP API :
GET /employees GET /employees/{id} POST /employees PUT /employees/{id} PATCH /employees/{id} DELETE /employees/{id}
如果你要发送 POST, PUT, PATCH 或 DELETE 请求,数据变动会保存到 db.json 文件里。发送 POST, PUT 或 PATCH 请求时为了在请求体中带上 JSON 数据应该设置 Content-Type: application/json 请求头。否则服务器会返回 200 OK 状态但是数据不会保存。
在 URL 中添加更多参数也是可以的。例如,你可以用 URL 参数添加过滤条件,如下所示:
http://localhost:3000/employees?first_name=Sebastian
此时只会返回一个 employee 对象。或者对所有属性做一个全文搜索:
http://localhost:3000/employees?q=codingthesmartway
完整的可用 URL 参数可以在 JSON Server 的文档上找到:https://github.com/typicode/json-server
只需使用浏览器就可以轻松发起 GET 请求。要发起其他类型的 HTTP 请求,你可以使用像Postman 这样的 HTTP 客户端工具。它有 MacOS、Windows 和 Linux 三种版本。此外,它还提供了一个 Chrome App 供你使用。
GET 请求
Postman 用户界面很容易使用。要发起 GET 请求,填写一个表单即可,如下图所示。单击 Send 按钮,你将收到 JSON 格式的响应数据:
DELETE 请求
一个对应的 DELETE 请求如下所示:
POST 请求
要新建一个 employee 我们需要发起一个 POST 请求,设置请求体内容为 JSON (application/json)。新的 employee 对象需要以 JSON 格式填写在 Body 部分:
PUT 请求
如果你想更新或者修改一个已存在的 employee 数据,此时可以发起一个 HTTP PUT 请求:
至此,我们已经在一个 JSON 文件中手动输入了由 API 使用的数据。但是,如果你需要大量数据,手动方式可能会很麻烦。解决这个问题的一个简单方法是使用 faker.js(https://github.com/marak/Faker.js/) 库来生成假数据。将 Faker.js 集成到JSON服务器很容易。只需遵循以下步骤:
首先在当前仓库里初始化生成一个 NPM 项目:
$ npm init
然后,使用 npm 安装 Faker.js:
$ npm install faker
Faker.js 会安装到 node_modules 目录里。创建另外一个 employees.js 文件,写入如下代码:
// employees.js var faker = require('faker') function generateEmployees () { var employees = [] for (var id = 0; id < 50; id++) { var firstName = faker.name.firstName() var lastName = faker.name.lastName() var email = faker.internet.email() employees.push({ "id": id, "first_name": firstName, "last_name": lastName, "email": email }) } return { "employees": employees } } module.exports = generateEmployees
我们编写一个 generateEmpoyees() 函数来生成 50 条 employee 数据。这里我们使用了 Faker.js 库提供的如下方法:
JSON Server 要求最后导出 generateEmployees() 函数用于生成模拟的数据。这一步是通过下面一行代码实现的:
module.exports = generateEmployees
增加了上述语句之后,我们就可以把 employee.js 文件传给 json-server 命令:
$ json-server employees.js
现在 REST API 就可以把 Faker.js 模拟的 50 条数据提供出来了。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
Maven常用命令1clean清除已编译信息。删除工程中的target目录。2validate验证项目是否正确3compile只编译。javac命令。4test用于执行项目的测试。如果在test目录下含有测试代码,那么Maven在执行install命令会先去执行test命令将所有的test目录下的测试代码执行一遍,如果有测试代码执行失败,那么install命令将会终止。5package打包。包含编
应用脚手架是一个项目的重中之重,决定了整个项目的基调。最近,因为新项目的需要,我正在创建一个React的脚手架(GitHub:https://github.com/phodal/react-boilerplate)。我已经很长一段时间没有写React了,上一次写React可能是在2015年,好在2017年,我还写过ReactNative——主要工作内容是在迁移Cordova的原生部分到ReactN
是的,我又写了一个markdown工具,它对我来说非常有用。上下文在一周里,我看到了一个名为“轻量级架构决策记录”的技术实践。在看到了一个简单的示例之后,并阅读了文章《架构决策记录》之后,我开始对于这种工具有了一个好的印象。这似乎就是我,以及敏捷团队、程序员所梦寐以求的工具。作为一个程序员,我们并不喜欢阅读又长又臭的文档,它往往不如一个hello,world来得实在。更不用说自己去写一个又长又臭的
在想用Serverless可以做点什么简单的在线应用后,我想到了一个是在线短链生成服务。最后的结果见:http://x.pho.im/,一个非常简单的在线应用。这里的代码基于:https://github.com/vannio/serverless-shrink。因为上面的代码中,不能自动创建域名。然后,再针对数据库进行了一些优化。代码逻辑这里的代码逻辑比如简单:创建短链时,使用生成一个四位的字符
创建文本直方图除了重复输入之外,“REPT”函数另一项衍生应用就是可以直接在工作表中创建由纯文本组成的直方图。它的原理也很简单,就是利用特殊符号的智能重复,按照指定单元格中的计算结果表现出长短不一的比较效果。比如我们首先制作一张年度收支平衡表,然后将“E列”作为直方图中“预算内”月份的显示区,将“G列”则作为直方图中“超预算”的显示区。然后根据表中已有结果“D列”的数值,用“Wingdings”字
一、什么是构造函数,什么是原型?-1).构造函数:如果接触过后端语言的朋友相信对构造函数是异常的敏感吧,其实在Java中创建对象的常用方式有两种,分别是构造函数、反射。其中构造函数是最常用的。但是请注意JavaScript中的构造函数与Java中的构造函数是不一样的,切不可将二者等同视之。并且针对于原型来说也是Java所不曾拥有的特殊机制。但是JavaScript中的构造函数可以用来创建对象这一功
一、字面量又叫函数表达式,如constfn=function(name,age){console.log(`姓名:${name},年龄:${age}`);}特点:没有变量提升,必须先声明,才能调用二、函数声明式functionfn2(name,age){console.log(`姓名:${name},年龄:${age}`);}特点:可以变量提升(优先级高于普通的对象),可以先调用,后声明三、构造函
删除文件后提交gitcommit-m'干了啥编一个'创建分支gitbranchgh-pages切换分支gitcheckoutgh-pages将dist文件夹里所有文件拷贝到当前目录下mvdist/*./查看提交日志gitlog提交日志简洁版gitlog--pretty=onelineGit提供了一个命令gitreflog用来记录你的每一次命令版本退回:首先,Git必须知道当前版本是哪个版本,在Gi
简单的创建流程大致可以分为下面这样创建项目>导包>在web.xml中配置前端控制器>创建servlet同名-servlet.xml文件>:A在配置扫描的注解Controller。B在配置扫描
在SpringBoot启动的时候,在进程完成后会自动退出。如何让SpringBoot以Web方式启动,并且进程不退出呢?需要确定下Web的这个依赖是否在你的依赖中。org.springframework.bootspring-boot-starter-web如果
扫一扫关注公众号
添加我为好友,拉您入交流群!
请使用微信扫一扫!