状态码描述示例200乐成哀求乐成,返回资源数据201已创建乐成创建资源,通常用于 POST204无内容操作乐成,但不返回任何内容(如 DELETE)400客户端错误哀求参数有误401未授权缺少或无效的认证信息403禁止访问客户端无权访问资源404资源未找到哀求的资源不存在500服务器内部错误服务端处理哀求时发生错误示例:Rest 风格的 API
1. 获取所有用户(GET 哀求)
GET /users HTTP/1.1
Host: example.com
Accept: application/json
复制代码
响应:
[
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
},
{
"id": 2,
"name": "Bob",
"email": "bob@example.com"
}
]
复制代码
2. 创建新用户(POST 哀求)
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Charlie",
"email": "charlie@example.com"
}
复制代码
响应:
HTTP/1.1 201 Created
Location: /users/3
复制代码
3. 更新用户信息(PUT 哀求)
PUT /users/3 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Charlie",
"email": "charlie.new@example.com"
}
复制代码
响应:
HTTP/1.1 200 OK
复制代码
4. 删除用户(DELETE 哀求)
DELETE /users/3 HTTP/1.1
Host: example.com
复制代码
响应:
HTTP/1.1 204 No Content
复制代码
Rest 风格的优点
简朴:基于 HTTP 标准协议,易于实现和理解。
机动:支持多种数据格式(JSON、XML 等)。
高扩展性:客户端和服务端解耦,便于扩展和维护。
适合微服务:常用于构建微服务架构的 API。
Rest 风格的局限性
无状态限定:需要客户端重复传递上下文信息,可能增加负担。
复杂事务支持不足:分布式体系中,需要通过赔偿机制实现复杂事务。
对实时性支持较弱:不实用于需要双向通信的场景(如 WebSocket 更适合)。
总结
Rest 风格是一种通用的、机动的 API 设计模式,广泛应用于 Web 服务和微服务架构。通过严酷遵守其原则,开发者可以构建出高效、易维护的体系。
拦截器
特性拦截器(Interceptor)过滤器(Filter)工作层级SpringMVC 层Servlet 容器层拦截对象控制器(Handler)所有哀求(静态资源也可拦截)功能扩展可以访问 Spring 上下文,支持依赖注入无法直接访问 Spring 上下文配置方式Spring 配置类web.xml或 @WebFilter注解7. 常见场景
登录校验拦截器:
@Component
public class AuthInterceptor implements HandlerInterceptor {