REST API 设计

入门预计上手 2-4 周

星团 后端

学习定位零前置,可直接入门→ REST API 设计 →学完本技能可衔接的下游技能建设中

岗位需求

3 核心 · 0 加分

在职岗位将其列为技能要求

核心岗位薪资带

18k-45k

核心要求岗位的月薪区间

需求趋势

上升 2稳定 1收缩 0

核心要求岗位的趋势分布

面试题库

高频真题 · 参考答案随题展开
1. REST 的核心架构约束有哪些?

REST 由 Fielding 论文定义的约束集合构成:客户端与服务端分离,接口统一(资源标识、通过表述操作资源、自描述消息、HATEOAS);无状态请求,每个请求自带全部上下文,服务端不保存会话,利于水平扩展与重试;可缓存,响应通过头声明可缓存性;分层系统,中间代理与网关对两端透明;按需代码可选(返回脚本扩展客户端)。实践中多数「RESTful API」只做到统一接口的资源化,HATEOAS 常被省略,严格派与务实派之争可以作为讨论点。答题时先列约束再点出无状态与统一接口对扩展性和一致性的意义,并说明表述通常用 JSON 而资源以 URI 标识,能提到 Fielding 原文批评「HTTP 加 JSON 不等于 REST」是加分项。

2. PUT 与 PATCH 的区别是什么?幂等性如何理解?

幂等指同一请求执行一次与执行多次效果相同。PUT 是全量替换:客户端提交完整资源表述,服务端整体覆盖,天然幂等,重复提交结果一致;PATCH 是部分更新:只发变更字段(JSON Merge Patch 或 JSON Patch 格式),语义上不保证幂等,例如「余额加 100」这类增量操作重复执行会叠加,若 PATCH 定义为设置目标值则幂等。相关对照:GET 与 DELETE 幂等(DELETE 第二次通常 404 但状态未变),POST 不幂等故用于创建与触发动作。设计要点:创建用 POST 返回 201 加 Location;更新整体用 PUT、部分用 PATCH 且字段语义用「设置」而非「增量」可保幂等;并发更新配 If-Match 与 ETag 做乐观锁防丢失更新。能举增量 PATCH 破坏幂等的反例即完整。

3. 常用 HTTP 状态码如何正确使用?

按语义分层记忆。2xx 成功:200 通用成功并带体;201 已创建(POST 建资源)配 Location;202 已受理异步任务;204 无内容(DELETE 成功或 PUT 无返回体)。3xx 重定向:301 永久(SEO 权重转移)、302 临时、304 缓存有效(配 If-None-Match 协商)、307 与 308 保持方法重定向。4xx 客户端错误:400 语义错误、401 未认证、403 已认证但无权限、404 不存在、409 冲突(版本或唯一约束)、410 已下线、412 前置条件失败、422 校验不过、429 限流要配 Retry-After。5xx 服务端错误:500 兜底、502 上游坏响应、503 暂不可用(维护或过载)、504 上游超时。反模式是全站 200 加业务码放 body,丢失 HTTP 语义让网关与缓存无法工作,正确做法是状态码加业务错误体双层表达。

4. API 的版本管理与演进策略有哪些?

常见方案:URI 路径版本(/v1/users)直观、路由与日志清晰,最普及;请求头版本(Accept 加 profile)更「 REST 正统」但调试麻烦;查询参数版本不推荐用于公开 API。演进原则上先做不破坏变更:加可选字段、加新端点、宽容读取多余字段;破坏性变更(删字段、改语义、改类型)才升主版本,旧版本设弃用时间表,用 Deprecation 与 Sunset 头公告,网关与监控双版本灰度分流。配套实践:OpenAPI 契约先行与 diff 检测防止无意破坏;移动端弱升级环境需要长周期多版本共存,服务端按版本适配器转换。答题给出选型对比加一个「加字段不破坏、删字段走新版本」的具体例子,并提 Sunset 头规范即显专业。

5. API 认证与授权有哪些常见方案?

按场景选型。API Key 最简单,适合服务间低敏感调用与公开配额控制,缺点是无用户粒度且泄露即全权。Session 加 Cookie 适合浏览器同源应用,配 SameSite 与 CSRF 防护,跨域与移动端别扭。JWT 无状态令牌:服务端签名不存储,载荷带声明与过期时间,适合微服务与分布式;痛点是吊销难(需黑名单或短有效期加 refresh token 轮换)与令牌体积,且.jwt 不能放敏感明文。OAuth2 加 OIDC 是授权框架与认证层组合:授权码模式加 PKCE 是公开客户端标准,适合第三方登录与开放平台,内部系统直接用 client credentials 做服务间授权。安全通用项:全程 TLS、令牌不过 URL、短时效加刷新、最小 scope。能对比 JWT 与 session 的吊销差异并说清 PKCE 解决什么即优秀。

🔒 解锁完整面试题库与参考答案(Pro)

含高频追问与作答要点,系统准备面试。

官方文档

1 条

推荐教程

2 条

推荐课程

1 条

上手实践

2 条

🔒 完整前置链分析 + 逐岗位引用明细

本页已免费展示学习定位与市场聚合;Pro 深读补齐完整前置依赖链分析与逐岗位引用明细 (核心/加分与深度档、岗位画像)。

知识分享

社区经验 · 管理员审核后展示

暂无分享——第一个来聊聊你的经验和踩坑吧。

有经验想分享?登录后可提交你的知识分享,管理员审核通过后将署名展示。

难度档决定星等与难度分权重(入门 1 / 进阶 2 / 精通 3);学习资源由编辑部遴选并持续维护, 经验心得欢迎在上方「知识分享」区署名分享。