请说明 RESTful 风格接口的核心设计理念与主要特征,并阐述其与普通 HTTP 接口的差异。
考察说明
考查对 REST 架构风格核心原则及实践要点(资源、HTTP 方法、状态码、无状态等)的掌握程度。
回答思路
- 【回答框架 1】REST(Representational State Transfer)是一种基于 HTTP 协议的架构风格,核心是将一切数据视为资源,通过 URI 唯一标识。其核心特征包括:资源导向、统一接口、无状态、可缓存、分层系统等。
- 【回答框架 2】统一接口通过 HTTP 方法表达对资源的操作:GET 获取资源,POST 创建资源,PUT 整体更新,PATCH 部分更新,DELETE 删除。每个方法都应具备幂等性(除 POST 外),且返回合适的 HTTP 状态码(如 200、201、204、400、404、500)。
- 【回答框架 3】RESTful 接口强调无状态性,即服务端不保存客户端上下文,每次请求需包含全部必要信息(如认证令牌),这有利于水平扩展和负载均衡。同时,资源之间通过超媒体(HATEOAS)建立关联,客户端可动态发现接口。
- 【回答框架 4】与普通 HTTP 接口相比,RESTful 接口更注重资源的抽象和规范性,普通接口可能只关注动作(如 /getUser),而 RESTful 使用名词复数(如 /users),并合理利用 HTTP 语义,提升接口的可读性和自解释性。
- 【关键点 1】REST 是面向资源的架构风格,URI 标识资源,HTTP 方法定义操作。
- 【关键点 2】无状态性要求请求携带完整上下文,便于扩展。
- 【关键点 3】合理使用 HTTP 状态码表达结果,如 201 表示创建成功。
- 【关键点 4】REST 是风格而非标准,实践中不必完全拘泥于规范。
- 【易错点 1】将 REST 单纯理解为 URL 规范,忽视 HTTP 方法的正确使用。
- 【易错点 2】无状态性被误解为不支持会话,实际上可通过令牌等机制传递状态。
- 【易错点 3】忽略状态码的语义,常常返回 200 包裹错误信息,降低接口可读性。