HTTP 方法与 RESTful API
HTTP 方法
HTTP 方法是指在 HTTP 协议中用于定义客户端与服务器之间如何交互的请求方式,常见的 HTTP 方法有以下几种:
- GET:用于获取资源,常见用于从服务器请求数据。
- POST:用于提交数据,通常用于创建新的资源。
- PUT:用于更新资源,通常用于替换现有资源。
- PATCH:用于部分更新资源,修改资源的部分数据。
- DELETE:用于删除资源。
- OPTIONS:用于获取服务器支持的 HTTP 方法列表。
示例
GET /users # 获取用户列表
POST /users # 创建一个新用户
GET /users/1 # 获取ID为1的用户
PUT /users/1 # 更新ID为1的用户
PATCH /users/1 # 部分更新ID为1的用户
DELETE /users/1 # 删除ID为1的用户
RESTful API
RESTful API 是基于 REST(Representational State Transfer,表现层状态转移)架构风格的 API,采用标准的 HTTP 方法来对资源进行操作。资源通过 URL 表示,并使用 JSON 作为数据格式。
RESTful API 设计原则
- 资源路径:资源通过 URL 定位,URL 应描述资源的含义(使用名词,而非动词)。
例如:/users
表示用户资源,/products
表示产品资源。
- HTTP 方法与资源操作对应:
- GET 用于获取资源。
- POST 用于创建资源。
- PUT 或 PATCH 用于更新资源。
- DELETE 用于删除资源。
- 状态码:使用标准的 HTTP 状态码来表示请求结果。
创建 RESTful API
我们可以结合 HTTP 方法来构建完整的 RESTful API。通常,API 设计会涉及资源的 CRUD(创建、读取、更新、删除)操作。
假设我们要为用户管理创建一个 RESTful API,处理用户的 CRUD 操作。
RESTful API 示例
const express = require('express');
const app = express();
let users = [{ id: 1, name: 'John Doe' }]; // 模拟的用户数据
app.use(express.json());
// 获取所有用户
app.get('/users', (req, res) => {
res.json(users);
});
// 获取指定用户
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
res.json(user);
});
// 创建新用户
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name,
};
users.push(newUser);
res.status(201).json(newUser);
});
// 更新用户
app.put('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
user.name = req.body.name;
res.json(user);
});
// 删除用户
app.delete('/users/:id', (req, res) => {
users = users.filter(u => u.id !== parseInt(req.params.id));
res.status(204).send(); // 成功删除,不返回内容
});
app.listen(3000, () => {
console.log('RESTful API server running on http://localhost:3000');
});