跳到主内容
UniKit

API 响应格式

生成完整的 Mock HTTP 响应:选状态码、方法与 Content-Type,按字段清单或 JSON Schema 生成响应体,可选分页包装与 RFC 7807 错误结构,输出状态行 + 响应头 + 响应体的完整报文。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

请求设置

生成值是确定性的:同一组设置永远得到同样的响应,方便直接写进断言或文档。

响应体来源

包装选项

分页包装把响应体放进 data,并补上 pagination 元信息
错误结构(RFC 7807)选择后响应体会换成 problem+json,Content-Type 也自动切换

完整响应

HTTP 响应
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 92
X-Mock-Method: GET

{
  "id": 995,
  "name": "bravo",
  "role": "admin",
  "createdAt": "2026-10-10T11:30:00Z"
}
仅响应体
{
  "id": 995,
  "name": "bravo",
  "role": "admin",
  "createdAt": "2026-10-10T11:30:00Z"
}

这个工具能做什么

  • 写接口文档时先拿到一段结构完整的示例响应:状态行、Content-Type、Content-Length 和格式化好的 JSON 体,直接贴进文档或 README。
  • 前端联调前造 mock:按字段清单或 JSON Schema 生成响应体,开分页包装就是列表接口,开错误结构就是 RFC 7807 的 problem+json。
  • 给错误码设计统一的错误响应:用 RFC 7807 的 type / title / status / detail / instance 五个字段,避免每个接口一套错误格式。
  • 检查「响应头里的 Content-Length 到底怎么算」:这里按 UTF-8 字节数计算,中文一个字 3 字节,不是字符数。

示例

输入

状态码 404,方法 GET,勾选「错误结构(RFC 7807)」,detail=用户不存在,instance=/api/users/42

输出

HTTP/1.1 404 Not Found
Content-Type: application/problem+json; charset=utf-8
Content-Length: 130
X-Mock-Method: GET

{
  "type": "about:blank",
  "title": "Not Found",
  "status": 404,
  "detail": "用户不存在",
  "instance": "/api/users/42"
}

勾选错误结构后 Content-Type 会自动切成 application/problem+json,type 留空时按 RFC 7807 的约定填 about:blank;报文用 CRLF 换行,和真实 HTTP 一致。

常见问题

生成的响应体是随机的吗?每次都不一样?

不是。数值来自以字段清单或 Schema 内容为种子的确定性算法(mulberry32),同一组设置永远得到同一份响应,所以可以直接把输出写进测试断言。字符串与日期更是按字段序号取值,例如日期固定从 2026-10-10 起算。

JSON Schema 支持到什么程度?

会读 type、properties、items、enum、const、default、example、format、minimum、maximum、multipleOf、minItems、maxItems;description、title 这类纯文档关键字会被忽略但不报警。$ref、oneOf、pattern 等没有实现的关键字会在结果上方明确列出来,而不是假装支持。

为什么响应头里有 X-Mock-Delay、X-Mock-Method 这种头?

它们不是标准头,只是给 mock 服务或文档读者看的提示:延迟用来告诉对方这个接口应该慢多久返回,方法用来标明这段响应是为哪个请求方法准备的。真实的 HTTP 客户端会忽略它们。

Content-Length 为什么和 JSON 里的字符数对不上?

因为 Content-Length 是字节数:ASCII 一个字符一字节,中文一个字三字节。工具用 TextEncoder 按 UTF-8 计算,所以 body 里出现中文时这个数字会明显大于字符数——这正是很多手写 mock 会写错的地方。

自定义响应头能覆盖 Content-Type 吗?

不能。Content-Type 与 Content-Length 由工具根据 Content-Type 选项与响应体自动生成,额外头里如果出现这两个名字会直接报错,避免出现「头说是 JSON,体其实是别的」这种自相矛盾的报文。

关键词:api responsemock apihttp responsejson schema mockrfc 7807接口响应Mock 响应HTTP 响应示例problem+json分页响应

同类工具