📥 导入 OpenAPI 与 Postman 集合
LiveMock 可以把一份 API 描述变成一组 expectation,这样你就不必手动重建每个接口。
支持的格式
| 来源 | 版本 |
|---|---|
| OpenAPI | 3.0 / 3.1(JSON 或 YAML) |
| Swagger | 2.0(JSON 或 YAML,会先转换成 OpenAPI 3) |
| Postman Collection | v2.0 / v2.1(JSON) |
格式会自动识别。不属于以上任何格式的文件会被拒绝并给出提示。
导入
导入的 expectation 会追加到当前打开的项目中。想从零开始,可以导入到新项目,或先删除已有的 expectation。
上传文件(点击或拖拽到拖放区域),然后选择选项:
| 选项 | 默认 | 作用 |
|---|---|---|
| Path prefix | 关闭 | 开启时,OpenAPI 文档中第一个 servers 条目的路径前缀会保留在每个路径前面。主机名始终被忽略;仍包含未解析 {variable} 的 servers 条目会被跳过。 |
| Overwrite existing | 关闭 | 开启时,导入的操作会替换 method 和 path 相同的已有 expectation。关闭时,这类操作会被跳过。 |
然后点击 Import。结果对话框会列出创建、覆盖、跳过了多少条 expectation,以及每一条无法导入的条目的原因。
生成了什么
每个 OpenAPI operation 生成一条 expectation
- Matchers —— 恰好两个:
method和path。- 不带参数的路径变成
path ISmatcher,例如/users。 - 带参数的路径变成
path MATCH_GLOBmatcher,其中每个{param}被替换为*,例如/users/{id}变成/users/*。
- 不带参数的路径变成
- 状态码与响应体 —— 使用第一个 2xx 响应,优先
200,其次201;没有 2xx 时使用default(按 200 处理),否则使用第一个声明的响应。 - 响应体来源,按优先级依次为:
examples的第一项、example、从schema采样的值(date-time、email、uuid、uri、hostname等格式会生成确定性样本),最后是{}。 - 响应类型 —— JSON 媒体类型会变成 JSON 响应,值会格式化缩进;其他媒体类型变成纯文本。没有响应体的 operation(例如 204)会得到空的 JSON 响应。
- 名称 ——
summary,其次operationId,最后METHOD /path。 - 其他字段 —— expectation 处于启用状态,延迟(delay)为
0,优先级(priority)为0。已废弃的 operation 与其他 operation 一样导入。