API 真正的工作方式:初学者构建与理解后端端点指南
Source: Dev.to
什么是 API?
API 代表 Application Programming Interface(应用程序编程接口)。它充当两套系统之间的桥梁,使它们能够相互通信。
把它想象成餐厅里的服务员:你(用户)下单,服务员(API)把订单送到厨房(服务器)。厨房准备好食物后,服务员再把食物送回给你。
从技术角度看,前端(例如 React、Vue、HTML)发起请求,API 将该请求传递给 后端 进行逻辑处理,然后 API 返回响应。几乎所有 API 都使用 JSON 这种轻量级数据格式进行通信。
API 请求到底是如何工作的
当你在 Instagram、Snapchat 或任何应用上点击 “登录” 时,浏览器会把数据(通常是 JSON)编译好并通过互联网发送。
- DNS 查询 – 域名系统将网站名称转换为 IP 地址,以便请求能够定位到正确的服务器。
- 中间件层 – 安全检查点负责日志记录、身份验证以及其他预处理,随后请求才会到达后端控制器。
- 控制器 – 操作的大脑;它处理业务逻辑并对数据库执行查询。
- 响应 – 后端将结果组织成结构化的 JSON 响应,发送回网络,前端解包信息以更新 UI(例如登录成功或显示错误)。
整个往返通常只需几毫秒,使交互感觉瞬间完成。
什么是 REST API
REST(Representational State Transfer)是大多数现代 API 使用的标准架构。REST 通过以下端点进行操作:
GET /api/users
POST /api/login
GET /api/products/:id
DELETE /api/posts/12
HTTP 方法
- GET – 获取数据
- POST – 发送数据
- PUT – 更新数据
- DELETE – 删除数据
常见状态码
200– OK(成功)201– Created(已创建)400– Bad Request(错误请求)404– Not Found(未找到)500– Server Error(服务器错误)
什么是端点(Endpoint)
端点就是 URL + HTTP 方法 的组合,用来执行某个操作。
示例
| 操作 | 示例端点 |
|---|---|
| 获取所有用户 | GET /api/users |
| 获取单个商品 | GET /api/products/:id |
| 创建账户 | POST /api/register |
| 登录 | POST /api/login |
端点输入的类型
路由参数: /users/:id
查询参数: /search?keyword=api
请求体数据: { "email": "test@gmail.com" }
构建你的第一个 API 端点
环境搭建
npm init -y
npm install express
创建一个名为 server.js 的文件并添加以下代码:
// server.js
const express = require('express');
const app = express();
const PORT = 3000;
// 简单的 GET 端点
app.get('/api/hello', (req, res) => {
res.json({ message: 'Hello, world!' });
});
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
工作原理
app.get()– 监听 GET 请求/api/hello– 端点 URLreq– 进入的请求(传入的数据)res– 服务器响应(返回的数据)
POST 端点(发送数据)
app.use(express.json()); // 读取 JSON 请求体
app.post('/api/register', (req, res) => {
const { name, email } = req.body;
res.status(201).json({
message: 'User created successfully',
data: { name, email }
});
});
什么是中间件?(初学者友好)
中间件 = 在你的主逻辑 之前 执行的函数。
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
常见用途
- 日志记录
- 身份验证
- 数据验证
- 处理 CORS
中间件支撑了后端系统的大部分功能。
API 如何与数据库交互
Endpoint → Controller → Database → Response
简化示例
app.get('/api/user/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id);
res.json(user);
} catch (error) {
res.status(500).json({ message: 'Server error' });
}
});
即使你暂时没有使用数据库,这个模式也会出现在每个后端项目中。
使用 Postman 或 Thunder Client 测试 API
示例测试
GET 请求
- 选择 GET
- 输入
http://localhost:3000/api/hello - 点击 Send(发送)
POST 请求
- 选择 POST
- 输入端点(例如
http://localhost:3000/api/register) - 前往 Body → JSON 并添加数据:
{
"name": "Kelvin",
"email": "kelvin@example.com"
}
测试工具可以让你在不构建前端的情况下验证 API。
小结
API 是连接前端、数据库和第三方服务的无形粘合剂。通过掌握核心生命周期——了解请求如何在端点触发逻辑,如何通过中间件保障管道安全,以及结构化响应如何闭环——你将从编写孤立函数迈向构建稳健、可扩展的系统。这一基础知识把后端从“黑盒”转变为可预测、可管理的数据流工作流。