使用 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 文档:链接