📌  相关文章
📜  使用 Node.js 创建一个简单的基于 JSON 的 API

📅  最后修改于: 2022-05-13 01:56:24.590000             🧑  作者: Mango

使用 Node.js 创建一个简单的基于 JSON 的 API

API(应用程序编程接口)结果通常被应用程序使用,有时用于从其庞大的数据库中提取信息,检查特定数据的状态,有时它们依赖于第三方 API 来显示与用户相关的附加信息。
在这里,我们将创建一个简单的基于 JSON 的公共化学 API,可以在任何编程语言中使用它来显示结果。

创建 API 的步骤:

  • 第 1 步:根据您的操作系统和系统要求,从此链接安装 Node.js。
  • 第 2 步:初始化一个空白文件夹,您将在其中构建 API。在该文件夹中,创建一个名为 index.js 的空白 JS 文件
  • 第 3 步:打开命令提示符并使用 CD(文件夹路径)转到创建的目录。
  • 第 4 步:输入npm init并完成这些步骤,回答提出的问题。

为了构建化学 API,我们需要创建一个空的 JSON 文件,然后粘贴链接化学数据中的数据。现在我们必须包含一些 NodeJS 库并为 API 设置端口。

var fs = require('fs');
  
// json file with the data
var data = fs.readFileSync('chemistry.json');
  
var elements = JSON.parse(data);
const express = require("express");
const app = express();
  
// To solve the cors issue
const cors=require('cors');
   
app.listen(process.env.PORT, 
    () => console.log("Server Start at the Port"));
   
app.use(express.static('public'));
app.use(cors());

设计 API 的端点:

// when get request is made, alldata() is called
app.get('/elements', alldata);
  
function alldata(request, response) {
      
    // Returns all information about the elements
    response.send(elements);
}

这里,“/elements”是端点,当向 API 发出get请求时,在 /elements 端点处,会调用 alldata()函数。现在 alldata()函数有两个参数(请求和响应)。使用 response.send(),将响应返回给用户。

app.get('/elements/:element/', searchElement);
  
function searchElement(request, response) {
    var word = request.params.element;
    word = word.charAt(0).toUpperCase()
        + word.slice(1).toLowerCase();
       
    if(elements[word]) {
        var reply = elements[word];         
    }
    else {
        var reply = {
            status:"Not Found"
        }
    }
       
    response.send(reply);
}

“/:element/” 是变量端点,用于有关任何特定元素的请求,例如 https://chemistrydata.herokuapp.com/elements/Hydrogen

结合所有三个部分的代码来创建index.js文件。

文件名:index.js

var fs = require('fs');
   
// json file with the data
var data = fs.readFileSync('chemistry.json');
   
var elements = JSON.parse(data);
const express = require("express");
const app = express();
   
// To solve the cors issue
const cors=require('cors');
    
app.listen(process.env.PORT, 
    () => console.log("Server Start at the Port"));
    
app.use(express.static('public'));
app.use(cors());
  
// when get request is made, alldata() is called
app.get('/elements', alldata);
   
function alldata(request, response) {
       
    // Returns all information about the elements
    response.send(elements);
}
  
app.get('/elements/:element/', searchElement);
  
function searchElement(request, response) {
    var word = request.params.element;
    word = word.charAt(0).toUpperCase()
        + word.slice(1).toLowerCase();
       
    if(elements[word]) {
        var reply = elements[word];         
    }
    else {
        var reply = {
            status:"Not Found"
        }
    }
       
    response.send(reply);
}

现在,你们都可以创建一个简单的基于 JSON 的 API,并将整个代码上传到 GitHub,并将其托管在 Heroku 上。我们已经包含了 Github 存储库链接和 API 文档,请随意探索该项目。

GitHub 回购链接: https://github.com/Aanisha/ChemistryDataAPI

API 文档:链接