GraphQL 的缓存为什么比 REST 难做,有哪些层面的缓存手段?
围绕“GraphQL 的缓存为什么比 REST 难做,有哪些层面的缓存手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较单端点导致 HTTP 缓存失效与客户端归一化缓存、持久化查询的配合。
API 设计 · HTTP面试题第 1 页,显示第 1–13 题,共找到 13 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“GraphQL 的缓存为什么比 REST 难做,有哪些层面的缓存手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较单端点导致 HTTP 缓存失效与客户端归一化缓存、持久化查询的配合。
围绕“GraphQL 通过 HTTP 提供服务时 GET 与 POST 的使用边界是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明查询可用 GET 而 mutation 必须 POST 的语义与安全原因。
围绕“限流时返回 429 与 Retry-After 的正确用法是什么,客户端重试该遵守什么规则”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明响应头取值形式与客户端退避配合。
围绕“批量操作接口部分成功部分失败时,状态码和响应体该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出整体 200/207 与逐项结果的方案及语义权衡。
围绕“REST GET 响应如何利用 Cache-Control 与 ETag 降低服务端压力,写操作后缓存怎么失效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖可缓存性判定与失效联动。
围绕“HTTP 内容协商中 Accept 与 Content-Type 各管什么,版本信息放进媒体类型有什么利弊”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分请求协商与实体描述两个方向。
围绕“REST 接口中 GET、POST、PUT、PATCH、DELETE 分别对应什么操作,语义边界在哪里”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清每个方法的语义与典型误用场景。
围绕“HTTP 哪些方法是幂等的,为什么说 POST 不幂等而 PUT 幂等”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用重复请求产生相同服务端效果的定义逐个判断方法。
围绕“REST API 设计中为什么推荐用名词而不是动词命名资源路径,删除用户这类操作该怎么设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明资源与操作的分离及用 HTTP 方法表达动作。
围绕“HTTP 安全方法是什么,GET 被缓存和预取带来什么设计约束”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明安全方法不应改变资源状态及违反后的实际风险。
围绕“REST 中单个资源与集合资源的路径和状态码使用上有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分集合与成员 URI 的语义及各自增删改查的响应约定。
围绕“废弃旧版本 API 时如何用 Sunset 和 Deprecation 响应头通知客户端”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明这两个头的语义与配套迁移流程。
围绕“REST API 版本放在 URL 路径、查询参数还是请求头,各自对缓存和演进有什么影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较多路由方案的可缓存性、可见性与演进成本。