
Yahoo Finance API – 完整指南
自从万维网(WWW)诞生以来,各种Web技术(如RPC或SOAP)被广泛用于创建和实现Web服务。然而,这些技术在处理通信任务时通常需要复杂的定义和操作。为了解决这一问题,REST架构风格应运而生,它有效地降低了复杂性,并为设计基于网络的应用程序提供了一种简洁的解决方案。随着Node.js技术在前端开发领域的广泛应用,本文将向您展示如何从零开始使用Node.js构建一个REST API。
REST(Representational State Transfer,表述性状态转移)是一种架构风格,也是一种用于通信的方法,广泛应用于Web服务的开发。简单来说,REST API是一种通过HTTP协议实现的应用程序接口(API),支持通过GET、PUT、POST和DELETE等HTTP方法对数据进行操作。
REST架构的优势在于其高效的带宽利用率,使得应用程序更适合互联网环境。REST基于资源,每个资源都可以通过标准HTTP方法进行访问。REST API通过将事务分解为小模块来处理特定任务,从而提供了更大的灵活性。
REST API的核心功能包括以下四种HTTP方法:
然而,并非所有使用这些方法的API都能被称为RESTful API。要构建一个真正的RESTful API,必须遵循一些特定的设计原则。
REST API的设计原则由Fielding博士在2000年提出,主要包括以下六点:
客户端发送到服务器的每个请求都必须包含完成该请求所需的所有信息。这些信息可以包括URI、查询字符串参数、请求正文或HTTP头部。服务器在处理请求后,将通过响应头、状态码或响应正文将结果返回给客户端。
REST通过统一的接口将客户端与服务器分离。这种分离有助于提高用户界面的可移植性,并增强服务器组件的可扩展性。
REST API需要在整个应用程序中保持一致性,具体包括以下四个接口约束:
为了提高性能,REST API的响应可以通过显式或隐式方式标记为可缓存或不可缓存。可缓存的响应允许客户端重复使用数据,避免重复请求。
REST采用分层系统架构,通过限制组件的行为来提高应用程序的稳定性。这种架构支持负载均衡和共享缓存,并增强了应用程序的安全性。
按需编码是一种可选的约束,允许客户端通过接口下载代码或扩展功能,从而简化客户端的实现。
接下来,我们将通过一个实践示例,使用Node.js和Express.js构建一个简单的CRUD REST API应用程序,用于管理图书馆的书籍信息。
在开始之前,请确保已安装以下工具:
1.Node.js
打开终端或命令提示符,导航到您的项目目录。
初始化项目:
npminit
按提示填写项目的基本信息,例如入口文件名(建议使用script.js
)。
安装Express.js:
npminstallexpress
安装Nodemon(可选,但推荐):
npminstall-gnodemon
Nodemon可以监控文件变化并自动重启服务器,无需手动操作。
以下是一个简单的Node.js代码示例,用于实现CRUD操作:
const express = require('express');
const app = express();
app.use(express.json());
const books = [
{ id: 1, title: 'Node.js入门' },
{ id: 2, title: 'JavaScript高级编程' }
];
// 获取所有书籍
app.get('/api/books', (req, res) => {
res.send(books);
});
// 根据ID获取书籍
app.get('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('未找到指定书籍');
res.send(book);
});
// 添加新书籍
app.post('/api/books', (req, res) => {
const book = {
id: books.length + 1,
title: req.body.title
};
books.push(book);
res.send(book);
});
// 更新书籍信息
app.put('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('未找到指定书籍');
book.title = req.body.title;
res.send(book);
});
// 删除书籍
app.delete('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('未找到指定书籍');
const index = books.indexOf(book);
books.splice(index, 1);
res.send(book);
});
// 设置服务器端口
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(服务器已启动,监听端口 ${port}
));
启动服务器:
nodemonscript.js
/api/books
:获取所有书籍/api/books/:id
:根据ID获取书籍/api/books
:添加新书籍/api/books/:id
:更新书籍信息/api/books/:id
:删除书籍通过本文,您已经了解了REST API的基本概念、设计原则以及如何使用Node.js构建一个简单的REST API应用程序。REST架构风格的灵活性和高效性使其成为Web服务开发的首选方案。希望本文的实践示例能帮助您更好地掌握Node.js和REST API的开发技巧。
原文链接: https://www.edureka.co/blog/rest-api-with-node-js/
Yahoo Finance API – 完整指南
WordPress REST API 内容注入漏洞分析
四款AI大模型API价格对比:DeepSeek R1、ChatGPT o3-mini、Grok3、通义千问 Max
四款AI大模型API基础参数、核心性能的区别:DeepSeek R1、ChatGPT o3-mini、Grok3、通义千问 Max
2025年多模态大模型API基础参数、核心性能:Deepseek、ChatGPT、文心一言
2025年最新推理大模型API价格对比:通义千问Max vs 豆包1.5 Pro vs 混元Lite
大模型新基座,基于FastAPI,利用Python开发MCP服务器
DeepSeek+ima:打造高效个人知识库,提升学习与工作效率
快速接入腾讯地图MCP Server