Apifox 帮助文档
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
  1. 数据模型
  • 帮助中心
  • 更新日志
  • 入门
    • 产品介绍
    • 联系我们
    • 私有化部署
  • 开始使用
    • 下载 Apifox
    • 注册与登录
    • 页面布局
    • 基本概念
    • 快速上手
      • 概述
      • 新建接口
      • 发送接口请求
      • 快捷请求
      • 添加断言
      • 新建测试场景
      • 分享 API 文档
      • 了解更多
    • 基础知识
      • 接口基本信息
        • 请求 URL 与方法
        • 请求参数与请求体
        • 请求头
        • 请求参数编码解码
        • HTTP/2
      • 认证与授权
        • 概述
        • 支持的授权类型
        • Digest Auth
        • OAuth 1.0
        • OAuth 2.0
        • Hawk Authentication
        • Kerberos
        • NTLM
        • Akamai EdgeGrid
        • CA 和客户端证书
      • 响应与 Cookie
        • 概述
        • API 响应
        • 创建和发送 Cookie
        • 实际请求
        • 提取响应示例
      • 请求代理
        • 网页端中的请求代理
        • 分享文档中的请求代理
        • 客户端中的请求代理
      • API Hub
        • API Hub
    • 导入导出数据
      • 概述
      • 手动导入
      • 定时导入
      • 导入设置
      • 导出数据
      • 其它方式导入
        • 导入 OpenAPI/Swagger
        • 导入 Postman
        • 导入 Apipost
        • 导入 Eolink
        • 导入 cURL
        • 导入 Markdown
        • 导入 Insomnia
        • 导入 apiDoc
        • 导入 .har 文件
        • 导入 knife4j
        • 导入 NEI
        • 导入小幺鸡(docway)
        • 导入 Apizza
        • 导入 WSDL
  • 设计 API
    • 概述
    • 新建 API 项目
    • 接口基础知识
    • 请求体多示例配置
    • 响应组件
    • 常用字段
    • 全局参数
    • 历史记录
    • 批量管理
    • 数据模型
      • 概述
      • 新建数据模型
      • 构建数据模型
      • 通过 JSON 等生成
      • 高级数据类型
    • 鉴权组件
      • 概述
      • 创建鉴权组件
      • 使用鉴权组件
      • 在线文档中的鉴权组件
    • 高级功能
      • 接口字段
      • 接口状态
      • 关联测试场景
      • 参数列表外观
      • 接口唯一标识
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 请求历史
    • 接口用例
    • 动态值
    • 校验响应
    • 文档模式/调试模式
    • 生成代码
    • 环境和变量
      • 概述
      • 全局/环境/临时变量
      • 环境与服务
      • Vault Secrets(密钥库)
        • 功能简介
    • 前后置操作&脚本
      • 概述
      • 断言
      • 提取变量
      • 等待时间
      • 数据库操作
        • 概述
        • MySQL
        • MongoDB
        • Redis
        • Oracle
      • 使用脚本
        • 概述
        • 前置脚本
        • 后置脚本
        • 公共脚本
        • pm 脚本 API
        • 使用 JS 类库
        • 响应数据可视化
        • 调用外部程序
      • 脚本示例
        • 断言示例
        • 脚本使用变量
        • 脚本读取/修改接口请求信息
      • 常见问题
        • 如何获取动态参数的真实值并加密?
        • 脚本运行后,提取的数字(bigint)精度丢失应该如何处理?
    • API 调试
      • GraphQL 调试
      • WebSocket 调试
      • Socket.IO 调试
      • SSE 调试
      • SOAP/WebService
      • gRPC 调试
      • 使用请求代理调试
      • Dubbo 调试
        • 新建 Dubbo 接口
        • 调试 Dubbo 接口
        • Dubbo 接口文档
      • TCP(Socket)
        • Socket 接口功能简介
        • 报文数据处理器
  • Mock 数据
    • 概述
    • 智能 Mock
    • 自定义 Mock
    • Mock 优先级
    • Mock 脚本
    • 云端 Mock
    • 自托管 Runner Mock
  • 自动化测试
    • 概述
    • 编排测试场景
      • 新建测试场景
      • 测试步骤间传递数据
      • 测试流程控制条件
      • 从接口/用例同步数据
      • 跨项目导入接口/用例
      • 导出测试场景数据
    • 运行测试场景
      • 运行测试场景
      • 批量运行测试场景
      • 数据驱动测试
      • 定时任务
      • 管理其它项目接口的运行环境
    • 测试报告
      • 测试报告
    • API 测试
      • 集成测试
      • 性能测试
      • 端到端测试
      • 回归测试
    • Apifox CLI
      • 概述
      • 安装和运行 CLI
      • CLI 命令选项
    • CI/CD
      • 概述
      • 与 Jenkins 集成
      • 与 Gitlab 集成
      • 与 Github Actions 集成
      • 与其它更多 CI/CD 平台集成
      • Git 提交自动触发测试
  • 发布 API 文档
    • 概述
    • 快捷分享
    • 查看 API 文档
    • 发布文档站
    • 页面布局设置
    • 自定义域名
    • AI 相关特性
    • SEO 设置
    • 高级设置
      • 文档站搜索设置
      • 跨域代理
      • 文档站接入 Google Analytics
      • 文档左侧目录设置
      • 文档可见性设置
      • 在线 URL 链接规范
    • API 版本
      • 创建 API 版本
      • 发布 API 版本
      • 快捷分享 API 版本
      • 功能简介
  • 迭代分支
    • 功能简介
    • 新建迭代分支
    • 在迭代分支中改动 API
    • 在迭代分支中测试 API
    • 合并迭代分支
    • 管理迭代分支
  • 管理中心
    • 入驻清单
      • 了解基本概念
      • 团队入驻
    • 管理团队
      • 成员角色与权限设置
      • 团队基本操作
      • 团队成员管理
      • 团队资源
        • 通用 Runner
        • 请求代理 Agent
        • 团队变量
      • 实时协作
        • 团队协作
    • 管理项目
      • 项目基本操作
      • 项目成员管理
      • 通知设置
        • 功能简介
        • 通知对象
        • 通知事件
      • 项目资源
        • 数据库连接
    • 管理组织
      • 单点登录(SSO)
        • 功能简介
        • 为组织配置单点登录
        • 管理用户账号
        • 将组映射到团队
        • Microsoft Entra ID
      • SCIM 用户管理
        • 功能简介
        • Microsoft Entra ID
      • 组织资源
        • 自托管 Runner
  • IDEA 插件
    • 快速上手
    • 生成接口文档
    • 生成数据模型
    • 配置
      • 全局配置
      • 项目内配置
      • 可配置规则
      • 脚本工具
      • Groovy 本地扩展
    • 进阶配置
      • 注释规范说明
      • 框架支持
    • 常见问题
      • 常见问题
  • 浏览器扩展
    • Chrome
    • Microsoft Edge
  • Apifox AI 功能
    • 总览
    • 启用 AI 功能
    • 修改数据模型
    • 常见问题
  • Apifox MCP Server
    • 概述
    • 通过 MCP 使用公开发布的 API 文档
    • 通过 MCP 使用 Apifox 项目内的 API 文档
    • 通过 MCP 使用 OpenAPI/Swagger文档
  • 最佳实践
    • 概述
    • 接口之间如何传递数据
    • 登录态(Auth)如何处理
    • 接口签名如何处理
    • 如何加密/解密接口数据
    • Jenkins 定时触发任务
    • 如何计算 AI 问答成本
    • 与其他成员共用数据库连接配置
    • 通过 CLI 运行包含云端数据库连接配置的测试场景
    • 通过 Runner 运行包含云端数据库连接配置的测试场景
    • Apifox 测试步骤之间怎么传递数据?
  • 账号&应用设置
    • 账号设置
    • API 访问令牌
    • 语言设置
    • 快捷键
    • 网络代理
    • 数据备份与恢复
    • 更新 Apifox
    • 实验性功能
  • 身份验证 & Auth 鉴权指南
    • 什么是 API Key
    • 什么是 Bearer Token
    • 什么是 JWT
    • 什么是 Basic Auth
    • 什么是 Digest Auth
    • 什么是 OAuth 1.0
    • 什么是 OAuth 2.0
      • 什么是 OAuth 2.0
      • 授权码授权类型
      • 授权码授权类型,带有 PKCE
      • 隐式授权类型
      • 密码凭证授权类型
      • 客户端凭证授权类型
  • 服务与隐私协议
    • 服务协议
    • 隐私协议
    • 服务等级协议
  • 参考资料
    • API 设计优先理念
    • JSON Schema 介绍
    • JSONPath 介绍
    • XPath 介绍
    • Apifox Markdown 语法
    • CSV 格式规范
    • 正则表达式
    • 安装 Java 环境
    • Runner 运行环境
    • 常见编程语言对应的数据类型
    • Socket 粘包和分包问题
    • 词汇表
    • 目录链接汇总
    • Apifox Swagger 扩展
      • 概述
      • x-apifox-folder
      • x-apifox-status
      • x-apifox-name
      • x-apifox-maintainer
    • Apifox JSON Schema 扩展
      • 概述
      • x-apifox-mock
      • x-apifox-orders
      • x-apifox-enum
    • 动态值表达式
  • 常见问题
  1. 数据模型

构建数据模型

编辑数据模型#

数据模型提供了一个直观的可视化编辑界面,是一个功能强大的工具组件,专为设计和构建 API 数据结构而打造。基于 JSON Schema,可用于创建 JSON 或 XML 数据结构。
image.png
每个数据模型以一个根对象为起点。构建数据模型时,需要向该根对象添加参数。
构建数据模型的步骤:
1
添加参数
点击根对象旁边的 +(添加子节点)图标,引入新参数。
2
命名参数
输入参数的名称(或键)。
3
选择参数类型
选择常见数据类型或选择引用预定义的数据模型。
4
高级设置
为每个参数分配数据类型,例如默认值和格式。
5
管理参数
通过移动、复制或删除属性来重新排列它们。你还可以为参数添加描述,并将其标记为必填。
你也可以通过从数据库表或导入 JSON Schema 文件来创建新的数据模型。了解更多关于通过 JSON 等生成的信息。

参数类型#

基于 JSON Schema 标准,Apifox 的数据模型编辑组件支持以下基本数据类型:
null:表示 JSON 中的 null 值。
boolean:表示布尔值,对应 JSON 中的 true 或 false。
object:表示键值对的无序集合,对应 JSON 中的 object 类型。
array:表示有序的值列表,对应 JSON 中的 array 类型。
使用 array 数据类型时,将自动生成一个子级 ITEMS 属性。它指定数组内元素的数据类型。
number:表示任意精度的十进制数值,对应 JSON 中的 number 类型。
string:表示由 Unicode 字符组成的字符串,对应 JSON 中的 string 类型。
image.png
除了上述标准数据类型外,Apifox 数据模型编辑组件还支持以下功能:
引用其他数据模型:可以引用并复用 API 文档中已定义的其他数据模型。
any:表示可以是任何数据类型的值。
数据模型组合:支持将多个数据模型组合在一起,以构建复杂的数据结构。
自定义:允许用户根据特定需求自定义和调整数据模型。

引用其他数据模型#

你可以通过 “引用其他数据模型” 功能,引用之前定义的数据模型。
image.png
在引用其他数据模型后,你可以在数据模型编辑组件中查看已引用的数据模型。
image.png
对原始数据模型的任何修改将自动反映在引用的数据模型中。
引用的数据模型无法直接编辑;若需修改,可采取以下方式:
点击数据模型名称,导航至原始数据模型进行编辑。
点击 解除关联,该数据模型将转化为一组独立的属性,允许单独编辑。
若只需修改特定属性的定义,可选择 解除关联 该属性,以便进行单独调整。此时,原始数据模型的任何更改将不会影响已取消引用的属性。
在引用的数据模型中,如果某些参数在接口中并非必填,可以通过点击 隐藏字段 来禁用不必要的参数。

数据模型组合#

如果数据结构中的某个参数可以具有多种数据类型,可以使用组合模式将多个数据模型进行组合。
image.png
Apifox 支持以下组合关键字:
allOf (AND):指定该参数必须符合组合中定义的所有数据模型。
anyOf (OR):指定该参数可以符合组合中列出的任意数据模型。
oneOf (XOR):指定该参数必须符合组合中定义的一个且仅一个数据模型。
选择组合模式后,名为“0”和“1”的子参数将显示在该参数下,分别表示组合中的每个数据模型。你可以修改每个子参数的数据模型类型,并根据需要添加其他数据模型。
image.png
在 API 文档中,数据模型组合将显示如下:
image.png

自定义#

选择 “自定义” 后,可以在编辑组件中直接编辑 JSON Schema。

参数设置#

对于每个参数字段,数据类型旁边有几个按钮:
image.png
*:指示该参数是否为必填。
N:指定该参数是否允许 null 值。
设置:允许你在类型编辑器中编辑高级设置。

类型编辑器#

类型编辑器以可视化方式描述一个参数,符合 JSON Schema 标准。
配置这些高级设置后,它们将在以下区域生效:
1.
在添加响应示例时,可以点击 “自动生成”,根据配置规则生成示例数据。
2.
配置将在 API 文档中展示。
3.
在请求 Body 中,可以点击 “自动生成”,基于配置规则生成请求数据。
4.
发送请求时,返回的数据将自动根据配置规则进行验证。
5.
在 Mock 服务中,响应数据将根据配置规则生成。

枚举#

对于 String、Integer 和 Number 类型,Apifox 支持枚举功能。通过启用枚举开关,你可以添加枚举值及其描述,并支持对枚举值进行批量编辑。

Mock#

除了参数中的高级设置外,你还可以通过为字段指定 Mock 值来填充 Mock 内容。Mock 值优先于高级设置中的配置规则。
Mock 值支持 Faker.js 语法,允许你直接从下拉选项中选择所需的 Faker 数据。
Mock 值也可以作为固定值进行输入。
image.png

XML 设置#

对于 XML 数据,Apifox 的类型编辑器提供了额外的 XML 设置。你可以启用 XML 开关,配置标签名、命名空间等属性,并预览生成的 XML 结构。
image.png

其他功能组件#

Apifox 中的数据模型编辑组件提供了几个非常有用的功能。
image.png
从 JSON 等生成:此功能允许你从 JSON、XML 数据及其他来源自动生成数据模型,或直接根据数据库表结构生成。了解更多关于通过 JSON 等生成的信息。
预览:该功能可生成符合数据模型定义的 Mock 数据,帮助你预览预期的数据结构。
生成代码:此功能可以生成多种编程语言中的数据结构定义代码。了解更多关于生成代码的信息。
JSON Schema:此功能允许你直接编辑 JSON 数据模型,便于进行微调和自定义。

常见问题#

如果一个参数有多个枚举值,并在多个位置使用,如何保持枚举的一致性引用?
你可以将该参数定义为一个独立的数据模型,包含一个参数字段,从而在 API 文档的不同部分中保持一致的引用。
上一页
新建数据模型
下一页
通过 JSON 等生成
Built with