创建资源成功后返回 201 时响应体和 Location 头应该怎么设计?
围绕“创建资源成功后返回 201 时响应体和 Location 头应该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Location 指向新资源 URI 及是否回传完整资源的取舍。
API 设计面试题第 2 页,显示第 51–90 题,共找到 90 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“创建资源成功后返回 201 时响应体和 Location 头应该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Location 指向新资源 URI 及是否回传完整资源的取舍。
围绕“耗时操作无法同步完成时,202 Accepted 加状态轮询的接口怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出任务资源建模与完成转向 303 或结果 URI 的方案。
围绕“参数校验失败应该返回 400 还是 422,错误信息里该不该暴露字段级细节”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分语法错误与语义校验失败并给出字段级错误的边界。
围绕“401、403、404 在鉴权场景中怎么区分,为什么有时故意对无权限资源返回 404”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清未认证、无权限、隐藏资源存在性三种语义。
围绕“资源被永久删除后返回 404 还是 410,语义和实际用途差在哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 410 表达主动永久移除及对爬虫与缓存的意义。
围绕“哪些场景该用 409 Conflict,它与 412、422 的边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须列举唯一约束、状态机冲突等场景并区分前提条件失败。
围绕“限流时返回 429 与 Retry-After 的正确用法是什么,客户端重试该遵守什么规则”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明响应头取值形式与客户端退避配合。
围绕“当操作无法映射为资源 CRUD 时(如重置密码、发布文章),REST 接口该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出动作资源化或受控动词端点两种方案及取舍。
围绕“REST API 哪些变更属于向后兼容、哪些必须升主版本”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须能分类枚举新增字段、删除字段、改类型、改默认值等情形的兼容性。
围绕“批量创建接口该保证全成功或全回滚,还是允许部分成功,决策依据是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按业务一致性与客户端补偿成本给出取舍标准。
围绕“批量操作接口部分成功部分失败时,状态码和响应体该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出整体 200/207 与逐项结果的方案及语义权衡。
围绕“批量提交中客户端重试时,如何保证已成功的子项不被重复执行”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明子项级幂等键或客户端请求 ID 的去重设计。
围绕“批量接口该限制单批数量吗,大批量请求的超时和内存问题怎么控制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出上限设定、异步化与分片策略。
围绕“REST GET 响应如何利用 Cache-Control 与 ETag 降低服务端压力,写操作后缓存怎么失效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖可缓存性判定与失效联动。
围绕“当过滤条件复杂到查询参数无法表达时,用 POST /search 创建查询资源是否违背 REST”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须权衡 URL 长度、缓存能力与语义纯度给出方案。
围绕“HTTP 内容协商中 Accept 与 Content-Type 各管什么,版本信息放进媒体类型有什么利弊”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分请求协商与实体描述两个方向。
围绕“游标分页(cursor-based)怎么设计,为什么适合无限滚动和实时数据流”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明游标编码、排序键稳定性与不支持跳页的代价。
围绕“REST 错误响应体应该包含哪些字段,为什么推荐 RFC 9457 problem+json 格式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 type/title/status/detail/instance 字段职责。
围绕“ETag 和 Last-Modified 做条件请求时各有什么局限,什么时候必须选 ETag”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出秒级精度与弱校验的局限。
围绕“客户端只想拿资源的部分字段时,fields 稀疏字段集参数该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明字段白名单、嵌套字段表达与默认字段策略。
围绕“直接把过滤参数拼进查询语句的列表接口有什么注入风险,如何防御”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明白名单字段与参数化查询的防御边界。
围绕“REST 列表接口的过滤条件如何用查询参数建模,多值过滤与范围过滤怎么表达”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出多值、区间、布尔条件的参数约定方案。
围绕“REST 接口中 GET、POST、PUT、PATCH、DELETE 分别对应什么操作,语义边界在哪里”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清每个方法的语义与典型误用场景。
围绕“支付类 POST 接口如何用 Idempotency-Key 防止客户端重试造成重复扣款”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清键的生成、存储、命中处理与过期策略。
围绕“HTTP 哪些方法是幂等的,为什么说 POST 不幂等而 PUT 幂等”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用重复请求产生相同服务端效果的定义逐个判断方法。
围绕“幂等键应该保存多久,请求未完成时相同键并发到达该怎么处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖键生命周期与 in-flight 请求的串行化策略。
围绕“客户端删除请求超时后重试,服务端返回 404 时重试逻辑该怎么处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须把 404 视为已删除的成功等价结果的判断讲清。
围绕“键集分页(keyset pagination)与 offset 分页在查询性能和一致性上有什么差别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 WHERE 排序键定位与 OFFSET 扫描的成本差异说明。
围绕“REST 中 /users/123/orders 这类嵌套资源路径该嵌套几层,何时应改用顶层资源加查询参数”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出嵌套表达归属关系的适用边界与扁平化判断标准。
围绕“基于 offset/limit 的分页在数据量大或频繁写入时会出什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清深分页成本与翻页期间数据增删导致的重复或遗漏。
围绕“分页请求超出最后一页时应该返回空数组还是 404”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须基于集合资源是否存在的语义给出判断。
围绕“分页接口的响应体应该包含哪些元信息,Link 头分页有什么优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须权衡 total、next 游标、Link 头等字段的成本与用途。
围绕“创建资源时用 POST /collection 还是 PUT /collection/id,决定因素是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须以谁决定资源 URI 与幂等性为依据。
围绕“REST API 设计中为什么推荐用名词而不是动词命名资源路径,删除用户这类操作该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明资源与操作的分离及用 HTTP 方法表达动作。
围绕“HTTP 安全方法是什么,GET 被缓存和预取带来什么设计约束”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明安全方法不应改变资源状态及违反后的实际风险。
围绕“REST 中单个资源与集合资源的路径和状态码使用上有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分集合与成员 URI 的语义及各自增删改查的响应约定。
围绕“REST 列表接口多字段排序参数怎么设计,升降序和默认排序如何约定”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出参数语法与稳定性要求(排序键加唯一键兜底)。
围绕“REST 资源标识用自增 ID 还是 UUID,对外暴露时各有什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较可枚举性、泄漏业务量、分布式生成等维度。
围绕“废弃旧版本 API 时如何用 Sunset 和 Deprecation 响应头通知客户端”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明这两个头的语义与配套迁移流程。
围绕“REST API 版本放在 URL 路径、查询参数还是请求头,各自对缓存和演进有什么影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较多路由方案的可缓存性、可见性与演进成本。