使用Node.js中的JSON Server创建一个RESTFUL API:初学者的综合指南。
#网络开发人员 #node #json #database

介绍

JSON Server是一个功能强大的 NPM 软件包,可让您快速,轻松地设置使用零编码的 Restful API 。这是一种轻巧而灵活的工具,可用于模拟完整的后端API,使其非常适合原型制作,测试和开发中小型应用程序。

使用 JSON Server ,您可以通过编写简单的JSON文件来创建功能齐全的API。然后,服务器将使用此文件生成一个静止的API,并配有 get 的所有必要端点, post put 删除请求等等。这使得非常容易快速启动和运行,而不必担心从头开始构建后端API的复杂性。

在本初学者的指南中,我将向您展示您需要知道的所有开始使用JSON服务器。我将引导您完成安装过程,向您展示如何创建JSON文件以定义数据结构,并演示如何使用API​​端点来检索,更新和删除数据。无论您是经验丰富的开发人员还是刚刚开始,本指南都会为您提供JSON服务器开始所需的一切。

在本指南结束时,您将对JSON服务器有一个可靠的了解,以及如何使用最小的努力来创建静止的API。所以,让我们开始!

课程结构

本文分为以下各节,每个部分涵盖了创建一个可以用作数据库的简单JSON服务器文件的关键方面,并支持各种API功能:

  1. 从端点检索所有数据:学习如何从JSON服务器文件中检索项目列表并将其返回为JSON对象。

  2. 通过ID查询:发现如何通过其唯一ID从JSON服务器文件中检索特定项目。

  3. 过滤:根据特定条件学习如何在JSON服务器文件中过滤项目。

  4. 排序:学习如何基于特定字段在JSON服务器文件中对项目进行排序。

  5. 分页:根据页面大小和页码从JSON服务器文件中检索项目的子集。

  6. Condclusion :在本文结束时,您将对如何创建可以用作数据库并支持各种API功能的简单JSON服务器文件有深入的了解。

先决条件

要充分利用本教程,有必要有以下内容:

  • 对RESTFUL API的工作原理的基本了解:JSON服务器是一种使您创建一个静止API的工具,因此在潜入本教程之前,您必须对API进行基本了解。

  • 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 titledescriptiondescriptionpriceprice的属性。

创建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来检索特定产品。假设我们想使用12ID获取产品,我们可以简单地导航到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个项目的列表。例如,如果我们在U​​RL中指定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服务器。你不会失望的!