成功响应什么时候用 204 No Content 而不是 200,DELETE 成功该用哪个?
成功响应什么时候用 204 No Content 而不是 200,DELETE 成功该用哪个? 本文先给出可直接复述的结论,再用最小代码说明204 No Content 200 DELETE 响应的工作方式、判断依据、项目边界和常见误区。
REST 与接口契约专题面试题第 1 页,显示第 1–41 题,共找到 41 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
成功响应什么时候用 204 No Content 而不是 200,DELETE 成功该用哪个? 本文先给出可直接复述的结论,再用最小代码说明204 No Content 200 DELETE 响应的工作方式、判断依据、项目边界和常见误区。
创建资源成功后返回 201 时响应体和 Location 头应该怎么设计? 本文先给出可直接复述的结论,再用最小代码说明201 Created Location 头 创建响应的工作方式、判断依据、项目边界和常见误区。
耗时操作无法同步完成时,202 Accepted 加状态轮询的接口怎么设计? 本文先给出可直接复述的结论,再用最小代码说明202 Accepted 异步任务 轮询 状态端点的工作方式、判断依据、项目边界和常见误区。
参数校验失败应该返回 400 还是 422,错误信息里该不该暴露字段级细节? 本文先给出可直接复述的结论,再用最小代码说明400 422 校验失败 错误响应的工作方式、判断依据、项目边界和常见误区。
401、403、404 在鉴权场景中怎么区分,为什么有时故意对无权限资源返回 404? 本文先给出可直接复述的结论,再用最小代码说明401 403 404 区别 鉴权 信息泄漏的工作方式、判断依据、项目边界和常见误区。
资源被永久删除后返回 404 还是 410,语义和实际用途差在哪? 本文先给出可直接复述的结论,再用最小代码说明410 Gone 404 永久删除 语义的工作方式、判断依据、项目边界和常见误区。
哪些场景该用 409 Conflict,它与 412、422 的边界是什么? 本文先给出可直接复述的结论,再用最小代码说明409 Conflict 资源冲突 并发 唯一约束的工作方式、判断依据、项目边界和常见误区。
限流时返回 429 与 Retry-After 的正确用法是什么,客户端重试该遵守什么规则? 本文先给出可直接复述的结论,再用最小代码说明429 Too Many Requests Retry-After 限流的工作方式、判断依据、项目边界和常见误区。
当操作无法映射为资源 CRUD 时(如重置密码、发布文章),REST 接口该怎么设计? 本文先给出可直接复述的结论,再用最小代码说明REST 非 CRUD 操作 动作端点 设计的工作方式、判断依据、项目边界和常见误区。
REST API 哪些变更属于向后兼容、哪些必须升主版本? 本文先给出可直接复述的结论,再用最小代码说明API 向后兼容 破坏性变更 判断的工作方式、判断依据、项目边界和常见误区。
批量创建接口该保证全成功或全回滚,还是允许部分成功,决策依据是什么? 本文先给出可直接复述的结论,再用最小代码说明批量操作 原子性 事务 部分提交的工作方式、判断依据、项目边界和常见误区。
批量操作接口部分成功部分失败时,状态码和响应体该怎么设计? 本文先给出可直接复述的结论,再用最小代码说明批量接口 部分成功 207 响应设计的工作方式、判断依据、项目边界和常见误区。
批量提交中客户端重试时,如何保证已成功的子项不被重复执行? 本文先给出可直接复述的结论,再用最小代码说明批量 幂等 子项去重 重试的工作方式、判断依据、项目边界和常见误区。
批量接口该限制单批数量吗,大批量请求的超时和内存问题怎么控制? 本文先给出可直接复述的结论,再用最小代码说明批量接口 大小限制 超时 分片的工作方式、判断依据、项目边界和常见误区。
REST GET 响应如何利用 Cache-Control 与 ETag 降低服务端压力,写操作后缓存怎么失效? 本文先给出可直接复述的结论,再用最小代码说明HTTP 缓存 Cache-Control ETag REST的工作方式、判断依据、项目边界和常见误区。
当过滤条件复杂到查询参数无法表达时,用 POST /search 创建查询资源是否违背 REST? 本文先给出可直接复述的结论,再用最小代码说明复杂查询 POST search 端点 REST的工作方式、判断依据、项目边界和常见误区。
HTTP 内容协商中 Accept 与 Content-Type 各管什么,版本信息放进媒体类型有什么利弊? 本文先给出可直接复述的结论,再用最小代码说明HTTP 内容协商 Accept 与 Content-Type 媒体类型版本的工作方式、判断依据、项目边界和常见误区。
游标分页(cursor-based)怎么设计,为什么适合无限滚动和实时数据流? 本文先给出可直接复述的结论,再用最小代码说明游标分页 cursor pagination 设计的工作方式、判断依据、项目边界和常见误区。
REST 错误响应体应该包含哪些字段,为什么推荐 RFC 9457 problem+json 格式? 本文先给出可直接复述的结论,再用最小代码说明错误响应格式 problem details RFC 9457的工作方式、判断依据、项目边界和常见误区。
ETag 和 Last-Modified 做条件请求时各有什么局限,什么时候必须选 ETag? 本文先给出可直接复述的结论,再用最小代码说明ETag Last-Modified 区别 条件请求的工作方式、判断依据、项目边界和常见误区。
客户端只想拿资源的部分字段时,fields 稀疏字段集参数该怎么设计? 本文先给出可直接复述的结论,再用最小代码说明稀疏字段集 fields 参数 部分响应的工作方式、判断依据、项目边界和常见误区。
直接把过滤参数拼进查询语句的列表接口有什么注入风险,如何防御? 本文先给出可直接复述的结论,再用最小代码说明过滤参数 注入 SQL 注入 参数校验的工作方式、判断依据、项目边界和常见误区。
REST 列表接口的过滤条件如何用查询参数建模,多值过滤与范围过滤怎么表达? 本文先给出可直接复述的结论,再用最小代码说明REST 过滤 查询参数 多值 范围查询的工作方式、判断依据、项目边界和常见误区。
REST 接口中 GET、POST、PUT、PATCH、DELETE 分别对应什么操作,语义边界在哪里? 本文先给出可直接复述的结论,再用最小代码说明HTTP 方法 CRUD 映射 REST 语义的工作方式、判断依据、项目边界和常见误区。
支付类 POST 接口如何用 Idempotency-Key 防止客户端重试造成重复扣款? 本文先给出可直接复述的结论,再用最小代码说明幂等键 Idempotency-Key 重复请求 支付接口的工作方式、判断依据、项目边界和常见误区。
HTTP 哪些方法是幂等的,为什么说 POST 不幂等而 PUT 幂等? 本文先给出可直接复述的结论,再用最小代码说明HTTP 幂等性 GET PUT DELETE POST的工作方式、判断依据、项目边界和常见误区。
幂等键应该保存多久,请求未完成时相同键并发到达该怎么处理? 本文先给出可直接复述的结论,再用最小代码说明幂等键 过期时间 并发 处理中状态的工作方式、判断依据、项目边界和常见误区。
客户端删除请求超时后重试,服务端返回 404 时重试逻辑该怎么处理? 本文先给出可直接复述的结论,再用最小代码说明DELETE 重试 404 幂等 超时处理的工作方式、判断依据、项目边界和常见误区。
键集分页(keyset pagination)与 offset 分页在查询性能和一致性上有什么差别? 本文先给出可直接复述的结论,再用最小代码说明keyset 分页 seek 分页 offset 对比的工作方式、判断依据、项目边界和常见误区。
REST 中 /users/123/orders 这类嵌套资源路径该嵌套几层,何时应改用顶层资源加查询参数? 本文先给出可直接复述的结论,再用最小代码说明REST 嵌套资源 路径层级 设计的工作方式、判断依据、项目边界和常见误区。
基于 offset/limit 的分页在数据量大或频繁写入时会出什么问题? 本文先给出可直接复述的结论,再用最小代码说明offset 分页 深分页 性能问题 数据漂移的工作方式、判断依据、项目边界和常见误区。
分页请求超出最后一页时应该返回空数组还是 404? 本文先给出可直接复述的结论,再用最小代码说明分页 越界 空页 404 还是空数组的工作方式、判断依据、项目边界和常见误区。
分页接口的响应体应该包含哪些元信息,Link 头分页有什么优势? 本文先给出可直接复述的结论,再用最小代码说明分页 响应元数据 Link 头 total count的工作方式、判断依据、项目边界和常见误区。
创建资源时用 POST /collection 还是 PUT /collection/id,决定因素是什么? 本文先给出可直接复述的结论,再用最小代码说明POST PUT 创建资源 区别 客户端指定 ID的工作方式、判断依据、项目边界和常见误区。
REST API 设计中为什么推荐用名词而不是动词命名资源路径,删除用户这类操作该怎么设计? 本文先给出可直接复述的结论,再用最小代码说明REST 资源命名 名词 动词 URI 设计的工作方式、判断依据、项目边界和常见误区。
HTTP 安全方法是什么,GET 被缓存和预取带来什么设计约束? 本文先给出可直接复述的结论,再用最小代码说明HTTP 安全方法 GET 无副作用 缓存预取约束的工作方式、判断依据、项目边界和常见误区。
REST 中单个资源与集合资源的路径和状态码使用上有什么区别? 本文先给出可直接复述的结论,再用最小代码说明REST 集合资源 单资源 URI 状态码的工作方式、判断依据、项目边界和常见误区。
REST 列表接口多字段排序参数怎么设计,升降序和默认排序如何约定? 本文先给出可直接复述的结论,再用最小代码说明REST 排序参数 sort 多字段 升降序的工作方式、判断依据、项目边界和常见误区。
REST 资源标识用自增 ID 还是 UUID,对外暴露时各有什么问题? 本文先给出可直接复述的结论,再用最小代码说明资源 ID UUID 自增 ID REST 设计的工作方式、判断依据、项目边界和常见误区。
废弃旧版本 API 时如何用 Sunset 和 Deprecation 响应头通知客户端? 本文先给出可直接复述的结论,再用最小代码说明API 废弃 Sunset Deprecation 响应头的工作方式、判断依据、项目边界和常见误区。
REST API 版本放在 URL 路径、查询参数还是请求头,各自对缓存和演进有什么影响? 本文先给出可直接复述的结论,再用最小代码说明API 版本控制 URL 版本 Header 版本的工作方式、判断依据、项目边界和常见误区。