📅  最后修改于: 2023-12-03 14:43:34.797000             🧑  作者: Mango
json-server
是一个基于 Node.js 的库,旨在提供一个快速创建 REST API 的解决方案。它可以使用 JSON 文件作为数据存储,并提供简单的 API 对这些数据进行 CRUD 操作。
json-server
可以使用 npm 进行安装:
npm install -g json-server
在使用 json-server
之前,需要准备一个符合规范的 JSON 文件。以 db.json
为例,文件内容应如下:
{
"posts": [
{
"id": 1,
"title": "json-server",
"author": "John Doe"
},
{
"id": 2,
"title": "REST API",
"author": "Jane Doe"
}
],
"comments": [
{
"id": 1,
"body": "some comment",
"postId": 1
}
]
}
使用以下命令启动 json-server
:
json-server --watch db.json
如果没有报错,命令行输出应如下:
\{^_^}/ hi!
Loading db.json
Done
Resources
http://localhost:3000/posts
http://localhost:3000/comments
Home
http://localhost:3000
Type s + enter at any time to create a snapshot of the database
Watching...
在浏览器中访问 http://localhost:3000/posts
或 http://localhost:3000/comments
,可以看到对应的 JSON 数据。
json-server
默认为每个资源创建以下路由:
| 路由 | 描述 | | --- | --- | | GET /posts | 返回所有帖子的列表 | | GET /posts/1 | 返回 id 为 1 的帖子 | | GET /posts?title=title | 返回具有"title"标题的所有帖子 | | POST /posts | 创建一个新帖子 | | PUT /posts/1 | 更新 id 为 1 的帖子 | | PATCH /posts/1 | 更新 id 为 1 的帖子的部分内容 | | DELETE /posts/1 | 删除 id 为 1 的帖子 |
对于每个资源,可以通过 --routes
选项自定义路由。例如,以下命令将为名为 users
的资源自定义路由:
json-server db.json --routes routes.json
routes.json
的内容应如下:
{
"/api/*": "/$1",
"/:resource/:id/show": "/:resource/:id",
"/posts/:category": "/posts?category=:category",
"/articles\\?id=:id": "/posts/:id"
}
除了上面提到的 --watch
和 --routes
选项外,json-server
还支持以下选项:
| 选项 | 描述 |
| --- | --- |
| --host <hostname> | 指定主机名。默认为 localhost
。无论何时,都可以使用 0.0.0.0
使服务器在网络上公开。 |
| --port <number> | 指定要使用的端口。默认为 3000
。 |
| --middlewares <file|folder> | 指定中间件文件夹或文件。 |
| --static <file|folder> | 指定静态文件夹或文件。 |
| --delay <number> | 模拟网络延迟(毫秒)。 |
| --id <property> | 指定用作对象标识符的属性。默认为 id
。 |
| --watch | 检测文件更改并重新加载。启用此选项时,还将自动开启 --delay 2000
。 |
| --quiet | 以静默模式运行,只显示关键信息。 |
| --help | 显示帮助信息。 |
| --version | 显示版本号。 |
json-server
是一个快速创建 REST API 的解决方案,可以使用 JSON 文件作为数据存储,并提供简单的 API 对这些数据进行 CRUD 操作。它还支持自定义路由和其他选项,使它成为一个非常灵活的工具。
请注意,上述代码片段是基于 markdown 格式的文档。