SPT术语库

校验 Validation

作品投稿请求经过 Validation 规则检查,形成 validated 或可处理的 INVALID_INPUT。

后端与接口约 10 分钟 · 从真实需求理解

1Validation 如何处理作品投稿?

BOUNDARY CHECK校验 Validation
INPUTPOST /api/projects/:projectId/submissions
projectIdp-482workUrl作品链接note投稿说明
VALIDATEboundary rules
·Input只接受必要字段·Trusted contextuserId 来自会话·Boundary不接受客户端伪造状态
ACCEPTED200 OKvalidated调用方可以依赖的稳定成功结果
REJECTED422INVALID_INPUT失败也要映射为可处理的错误

Input 只携带必要字段,尚未进入边界。

Validation 处理作品投稿请求:读取请求输入和会话上下文,Validate 后返回 validated 或稳定错误。

  • 可信身份来自会话,不接受客户端伪造 ownerId、reviewStatus、reviewerId 或 score。
  • Validation 只检查自己的输入边界,不把资格、截止时间和重复投稿等无关业务规则复制到每个入口。

2Validation 与 Handler、API Contract 如何分工?

Validation 只承担自己的协议边界,Handler 编排入口,API Contract 描述调用者可观察的输入和输出。

  • Validation 不等于 Handler:处理器编排入口,Validation 保持输入规则和错误映射边界。
  • Validation 不等于 API Contract:契约描述调用者看到什么,Validation 负责检查能否进入下一步。
  • 不要把资格、截止时间、重复投稿等无关规则复制到每个入口。

3Validation 由哪些可验收部件组成?

01 · INPUTPOST /api/projects/:projectId/submissions
projectIdp-482workUrl作品链接note投稿说明
02 · VALIDATEValidate

边界规则与可信上下文

  • TrusteduserId from session
  • Boundaryserver-owned
  • Error422 INVALID_INPUT
04 · ACCEPTED200 OK · validated

失败映射为 422 INVALID_INPUT,结果仍保持稳定。

每个部件都指向真实 DOM 中的一段投稿验证证据。

  • Input 说明接收什么,Validate 说明执行哪些边界规则,Accepted 说明如何形成稳定结果。
  • 可信上下文来自服务端会话,而不是客户端隐藏字段。

4Validation 正常与失败时会返回什么?

正常投稿通过
Validation
POST /api/projects/:projectId/submissions
validated

Validation 通过

失败请求被稳定映射
Validation
POST /api/projects/:projectId/submissions
INVALID_INPUT

Validation 拒绝请求

两个案例保持作品投稿场景,只改变当前输入规则是否通过。

  • 正常路径返回 200 OK validated。
  • 失败路径返回 422 INVALID_INPUT INVALID_INPUT,不泄露内部堆栈。

5什么时候需要显式设计 Validation?

不建议这样用单一局部逻辑
局部任务
单入口

规则只在唯一调用点使用。

多个入口共享边界
共享边界
公开投稿

把 Validation 提取为可测试边界。

是否需要 Validation,要看它是否跨入口复用并有清晰的失败语义。

  • 一次性局部逻辑可以留在唯一调用点附近。
  • 公开投稿接口和多个入口共享的规则,应把 Validation 作为可测试边界。

6怎样把 Validation 约束交给 Agent?

请实现作品投稿 Validation:围绕 POST /api/projects/:projectId/submissions 的 Validation 边界,只读取 projectId、workUrl、note 和会话上下文,不接受客户端伪造 ownerId、reviewStatus、reviewerId 或 score;Validation 通过时返回 200 OK validated,失败映射为 422 INVALID_INPUT INVALID_INPUT。不要把无关业务规则堆进这一层。运行定向内容检查、语义检查、typecheck、迁移核对和真实页面验收。

7不用背,看看你能不能判断

1 / 3

Validation 主要保证什么?

请选择一个最符合题意的答案

选择答案后自动进入下一题

社区延伸

看别人真实遇到过什么

社区帖子还没有关联到这个词条。