介绍
JSON Server是一个功能强大的 NPM 软件包,可让您快速,轻松地设置使用零编码的 Restful API 。这是一种轻巧而灵活的工具,可用于模拟完整的后端API,使其非常适合原型制作,测试和开发中小型应用程序。
使用 JSON Server ,您可以通过编写简单的JSON文件来创建功能齐全的API。然后,服务器将使用此文件生成一个静止的API,并配有 get 的所有必要端点, post , put ,删除请求等等。这使得非常容易快速启动和运行,而不必担心从头开始构建后端API的复杂性。
在本初学者的指南中,我将向您展示您需要知道的所有开始使用JSON服务器。我将引导您完成安装过程,向您展示如何创建JSON文件以定义数据结构,并演示如何使用API端点来检索,更新和删除数据。无论您是经验丰富的开发人员还是刚刚开始,本指南都会为您提供JSON服务器开始所需的一切。
在本指南结束时,您将对JSON服务器有一个可靠的了解,以及如何使用最小的努力来创建静止的API。所以,让我们开始!
课程结构
本文分为以下各节,每个部分涵盖了创建一个可以用作数据库的简单JSON服务器文件的关键方面,并支持各种API功能:
-
从端点检索所有数据:学习如何从JSON服务器文件中检索项目列表并将其返回为JSON对象。
-
通过ID查询:发现如何通过其唯一ID从JSON服务器文件中检索特定项目。
-
过滤:根据特定条件学习如何在JSON服务器文件中过滤项目。
-
排序:学习如何基于特定字段在JSON服务器文件中对项目进行排序。
-
分页:根据页面大小和页码从JSON服务器文件中检索项目的子集。
-
Condclusion :在本文结束时,您将对如何创建可以用作数据库并支持各种API功能的简单JSON服务器文件有深入的了解。
先决条件
要充分利用本教程,有必要有以下内容:
-
对RESTFUL API的工作原理的基本了解:JSON服务器是一种使您创建一个静止API的工具,因此在潜入本教程之前,您必须对API进行基本了解。 p>
-
node.js已安装:JSON服务器是在Node.js顶部构建的,因此必须在启动之前在计算机上安装Node.js。如果您尚未安装它,则可以从官方Node.js website下载它。
有了这两个先决条件,您就可以准备潜入本教程并开始使用JSON Server创建自己的RESTFUL API。
构建JSON Server API:设置,查询和管理数据的分步指南。
本节将指导您完成构建JSON服务器API的过程。首先,让我们从设置开发环境开始。
设置JSON服务器项目。
-
安装JSON服务器:在我们开始构建JSON Server API之前,我们需要安装JSON服务器。可以使用Node.js和
npm
软件包管理器安装JSON服务器。
要安装JSON服务器,我们首先需要初始化我们的项目。打开终端或命令提示符并运行以下命令:
npm init -y
npm init -y
是一个命令,可以初始化一个带有默认设置的新node.js项目,而无需提示用户以获取任何输入。
-y
flag告诉npm使用所有选项使用默认设置,创建一个包含默认值的package.json文件,例如项目名称,版本和输入点。
此命令通常在新项目的开头使用,以快速为项目建立基本的项目结构和软件包管理。一旦解决问题,现在就安装JSON服务器。在您的终端中运行以下命令:
npm install -g json-server
这将在您的系统上全球安装JSON服务器,可用于任何项目。
但是,如果您不想在全球上安装它,则可以跳过-g
flag
安装完成后,您可以通过在终端中运行以下命令来验证JSON服务器是否已安装:
json-server --version
您应该看到这样的东西:
bigwiz@bigwiz:~/Documents/jsonwebserver$ json-server --version
0.17.3
- 创建一个db.json文件:设置JSON服务器项目的第二步是创建一个将作为服务器数据源的JSON文件。该文件将包含服务器将通过其RESTFUL API暴露的数据。
JSON文件应作为对象数组结构,每个对象代表数据集中的记录。例如,如果您正在创建一个为电子商务网站提供数据的JSON服务器,则JSON文件中的每个对象都可能代表一个产品,具有id
title
,description
,description
,price
和price
的属性。
创建JSON文件后,它可以用作JSON服务器的数据源。
现在,让我们为我们的项目创建一个带有20个产品的db.json
文件。打开您的文本编辑器并创建一个文件调用db.json
并将以下数据插入其中:
{
"products": [
{
"id": 1,
"title": "product 1",
"price": 300,
"category": "cars",
"description": "Product 1 description"
},
{
"id": 2,
"title": "product 2",
"price": 200,
"category": "accessories",
"description": "Product 2 description"
},
{
"id": 3,
"title": "product 3",
"price": 600,
"category": "gadgets",
"description": "Product 3 description"
},
{
"id": 4,
"title": "product 4",
"price": 400,
"category": "accessories",
"description": "Product 4 description"
},
{
"id": 5,
"title": "product 5",
"price": 500,
"category": "gadgets",
"description": "Product 5 description"
},
{
"id": 6,
"title": "product 6",
"price": 300,
"category": "accessories",
"description": "Product 6 description"
},
{
"id": 7,
"title": "product 7",
"price": 200,
"category": "jeweries",
"description": "Product 7 description"
},
{
"id": 8,
"title": "product 8",
"price": 600,
"category": "gadgets",
"description": "Product 8 description"
},
{
"id": 9,
"title": "product 9",
"price": 600,
"category": "accessories",
"description": "Product 9 description"
},
{
"id": 10,
"title": "product 10",
"price": 500,
"category": "gadgets",
"description": "Product 10 description"
},
{
"id": 11,
"title": "product 11",
"price": 300,
"category": "foods",
"description": "Product 11 description"
},
{
"id": 12,
"title": "product 12",
"price": 200,
"category": "accessories",
"description": "Product 12 description"
},
{
"id": 13,
"title": "product 13",
"price": 600,
"category": "cars",
"description": "Product 13 description"
},
{
"id": 14,
"title": "product 14",
"price": 900,
"category": "accessories",
"description": "Product 14 description"
},
{
"id": 15,
"title": "product 15",
"price": 700,
"category": "jeweries",
"description": "Product 15 description"
},
{
"id": 16,
"title": "product 16",
"price": 300,
"category": "clothes",
"description": "Product 16 description"
},
{
"id": 17,
"title": "product 17",
"price": 400,
"category": "foods",
"description": "Product 17 description"
},
{
"id": 18,
"title": "product 18",
"price": 600,
"category": "gadgets",
"description": "Product 18 description"
},
{
"id": 19,
"title": "product 19",
"price": 400,
"category": "accessories",
"description": "Product 19 description"
},
{
"id": 20,
"title": "product 20",
"price": 1000,
"category": "gadgets",
"description": "Product 20 description"
}
]
}
创建db.json文件后,下一步是将其用作JSON服务器的数据源。
要使用db.json文件作为数据源,您需要通过在终端或命令提示中运行以下命令来启动JSON服务器:
json-server --watch db.json
此命令启动JSON服务器,并告诉它观看DB.JSON文件以进行更改。您对DB.JSON文件的任何更改都将立即反映在服务器提供的API中。
服务器运行后,您可以通过在Web浏览器中导航到http://localhost:3000/访问API。这将显示API可用端点的列表。然后,您可以使用这些端点来获取和操纵存储在db.json文件中的数据。
您的命令行应该显示这样的内容:
\{^_^}/ hi!
Loading db.json
Done
Resources
http://localhost:3000/products
Home
http://localhost:3000
Type s + enter at any time to create a snapshot of the database
Watching...
在下一部分中,我们将开始查询我们的JSON服务器数据库。
从“产品”端点检索所有数据
提出GET
请求可能是最简单的,您要做的就是导航到http://localhost:3000/products
,您将获得所有产品的列表。如您所见,使用零编码,我们已经设置了一个RESTful API
。那是多么甜蜜。
ID
的查询
就像检索所有产品一样,我们可以通过简单地导航到http://localhost:3000/products/id
来检索特定产品。假设我们想使用12
的ID
获取产品,我们可以简单地导航到http://localhost:3000/products/12
,这将返回ID的单个对象。
过滤
在本节中,我们将在提出GET
请求时看到如何过滤数据。假设我们正在建立一个电子商务网站,并且用户应该可以选择按类别过滤产品列表。我们如何使用JSON服务器?好吧,这很简单。我们需要做的就是导航到URL
,即http://localhost:3000/products
,并附加我们要过滤的属性的查询参数:
localhost:3000/products?category=cars
这将返回汽车类别下所有产品的数组。就像那样简单。
排序
在电子商务网站中,一个共同的要求是能够sort
产品(低到高或高低)。在我们的情况下,假设我们需要通过price
属性对这些产品进行分类。我们该怎么做?同样,这很简单。让我展示如何做到这一点。对于price
属性的sort
产品,我们要做的就是导航localhost:3000/products
并附加_sort
的查询参数,并将其值设置为我们要排序的属性,在这种情况下,它是价格属性:
localhost:3000/products?_sort=price
当我们提出此请求时,产品将按ASC
价格顺序排序。从最低到最高。通过Defffault,产品按ASC顺序排序,如果您想按DESC
订单进行排序,您需要做的就是将&_order=desc
附加到localhost:3000/products?_sort=price
上,例如:
localhost:3000/products?_sort=price&_order=desc
现在的价格将从最高到最低。
分页
在本节中,让我们了解json-ever如何支持分页。现在,如果我们导航到localhost:3000/products
,您将获得所有产品的列表。但是,当您显示产品列表或有桌子时,分页是您可能必须支持的。
要分页数据,我们附加了?_page
,然后分配一个页码。通过diffualt,每个页面都返回10个项目的列表。例如,如果我们在URL中指定localhost:3000/products?_page=1
,则通过diffualt,我们将在db.json
文件中获得前10个产品的数组。同样,如果我们将页面指定为2 ,我们将获得接下来的10种产品,依此类推。
我们还可以限制我们想要取回的产品数量:
localhost:3000/products?_page=1&_limit=6
这将返回db.json file
中前6个产品的数组。如您所见,使用 JSON Server 。
结论
JSON Server是快速,轻松地创建伪造的REST API的强大工具。它使开发人员可以专注于建立其应用程序的前端,而不必担心后端实施。 JSON服务器凭借其直观且直接的API,使开发人员能够模拟复杂的服务器响应,从而成为测试和原型应用程序的绝佳工具。此外,它的灵活性和易用性使其成为想要创建自定义API以满足其特定需求的开发人员的绝佳选择。总体而言,JSON服务器是一种宝贵的资源,可以帮助简化开发过程并提高生产率。
总而言之,使用JSON服务器是为您的前端应用程序设置模拟API的一种简单有效的方法。通过遵循本文中概述的步骤,您可以快速创建一个伪造的API,以密切模仿真实的API,并测试您的代码,而不必担心后端的复杂性。因此,如果您是前端开发人员,正在寻找一种嘲笑API的方便方法,请尝试使用JSON服务器。你不会失望的!