Apifox 帮助文档
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
  1. 设计 API
  • 帮助中心
  • 更新日志
  • 入门
    • 产品介绍
    • 联系我们
    • 私有化部署
  • 开始使用
    • 下载 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

新建接口

在 Apifox 中,设计和配置 API 是创建强大且高效 API 的基础环节。
建议遵循 OAS (OpenAPI 规范 ) 来设计接口,以确保在 OpenAPI 生态系统中的各种工具和服务之间具有良好的兼容性。如果偏离了 OAS,在使用 OpenAPI 兼容的工具和服务时可能会出现兼容性问题。
要在 接口管理 模块中创建新接口,点击 新建接口 按钮。
清晰完整的接口应包含以下要素:
1.
接口路径
2.
请求方法
3.
接口描述信息
4.
请求参数
5.
返回响应和示例
CleanShot 2024-11-08 at 14.03.35@2x.png
Apifox 的接口界面提供两种模式:文档模式(以设计为主)和 调试模式(以代码为主)。可以在界面左下角切换模式。本文基于 文档模式 。了解更多关于文档/调试模式的信息。

接口路径#

接口路径是 API 与外部应用进行交互的特定地址,客户端会通过该地址访问 API 服务。
不同于 Postman,Apifox 推荐遵循 OpenAPI 规范,接口里只需填写 Path,无需填写完整的 URL,“前置 URL(Base URL) ”放到环境里,运行时 Apifox 会自动将“前置 URL ”加到 Path 前,Path 里无需额外添加变量。
image.png
Apifox 推荐遵循 OpenAPI 规范,接口路径(Path) 以/起始,使接口更规范,并且使用 Apifox 过程中能获得更好更完整的功能体验。
image.png
推荐路径以 / 开头的原因
按照 OAS 规范,以 / 开头路径有助于在 OpenAPI 生态中的兼容性。如果路径没有以 / 开头,在使用工具时可能会遇到兼容性问题。
此外,以 / 开头的路径支持 URL 模式 Mock 功能,这对 Apifox 的测试和验证功能非常重要。

请求方法#

请求方法决定了客户端如何与服务端资源交互。每种方法具有其独特的含义,并会触发服务器的不同响应。设计 API 时,根据业务需求选择合适的请求方法,以有效实现预期操作。
以下是常用的 API 请求方法:
1.
GET:获取指定资源,通过 Query 参数传递数据。
2.
POST:提交数据进行处理,通常将数据放在请求体中。
3.
PUT:完整更新或替换指定资源。
4.
DELETE:删除指定资源。
5.
OPTIONS:查询目标资源支持的 HTTP 方法。
6.
HEAD:与 GET 类似,但仅返回响应头,用于检查资源存在及修改情况。
7.
PATCH:部分更新指定资源。
8.
TRACE:返回服务器收到的请求,用于调试和诊断。
9.
CONNECT:建立到服务器的隧道,通常用于代理服务器的请求转发。

接口描述信息#

在 Apifox 中,每个接口都包含一组默认的描述信息字段,用于规范和管理 API 的文档、可访问性以及生命周期。
image.png
以下是各默认描述信息字段的简要说明:
命名
接口的描述性名称,用于概述接口的功能。
可见性
该接口文档的可见性,方便灵活控制项目资源的访问权限。
状态
默认为 “开发中”,可在接口状态下更改,标识不同阶段如 “测试中” 或 “已发布”。
责任人
指定负责该接口的成员,可以从项目成员中选择用户分配此角色。
标签
关键词或短语,用于对接口进行分类或描述。可以键入新标签或从已有标签中选择。
服务(前置 URL)
接口路径的基础 URL,默认为“继承自父级”,也可以通过界面右上角的环境设置手动指定。
了解更多关于环境与服务。
OperationId
在 API 中帮助区分该操作的唯一标识符 (OAS 中的 operationId)。
说明
详细说明接口的目的及用途,支持 Markdown 格式。
除默认描述信息字段外,还可以灵活添加自定义字段,以进一步完善接口描述信息。

请求参数#

请求参数用于控制数据返回或修改服务器响应的选项。
请求参数包括查询参数 (Query)、路径参数 (Path)、请求头参数 (Header) 和请求体参数 (Body)。

Query 参数#

查询参数是键值对,在 URL 末尾以 ? 开始,以 & 分隔,例如:?id=2&status=available。通常用于筛选、排序或修改 API 的输出。
在 Apifox 中,Query 参数独立描述以保持清晰。但在发送请求时,这些 Query 参数会拼接在接口路径后面。

Path 参数#

Path 参数是接口 URL 中的一部分,用于识别 API 中的特定资源或实体。
在 Apifox 中,Path 参数用 大括号 表示而非冒号。例如,
正确示例:/pets/{id}
错误示例:/pets/:id
在接口路径中添加 {parameter},参数将自动显示在 “Path 参数” 区域。
区分 {parameter} 和 {{variable}}
{parameter}:单大括号表示 Path 参数,是 URL 路径中的占位符,当访问接口时会替换为具体的值。
{{variable}}:双大括号用于在请求中引用变量,请求发送时可替换为实际值,实现动态和自定义输入。
路径中不建议使用 {{variable}} 的原因
{{variable}} 不符合 OAS 规范,遵循 OAS 可以在 OpenAPI 生态中的工具中实现无缝集成。
在路径中使用 {{variable}} 会影响 Apifox 的 Mock API 功能的使用。

请求头参数#

请求头参数提供关于请求的额外信息,通常用于认证、内容类型及其它元数据。
了解更多关于请求头。

请求体参数#

请求体参数包含请求体中的数据,通常用于 POST、PUT 和 PATCH 请求,用于创建或更新资源,数据通常以 JSON 或 XML 格式发送。
了解更多关于请求体参数。

参数描述#

参数描述应包括名称、类型 (如 string、integer、boolean 等)、是否必填、默认值或约束条件。
描述参数时,常用以下关键属性:
1.
参数名:指定参数名称,必填字段,应准确代表参数。
2.
类型:定义参数值的数据类型,如 string、number、integer、boolean、array、object 等,便于理解请求数据的格式。
3.
说明:简要说明参数的作用或使用方法。
4.
是否必需:标识参数是否为必填项,为布尔值(true 或 false)。
5.
高级设置:定义参数的数据类型、格式及约束,详细说明参数值的结构及内容。
可以使用 “数据模型” 功能轻松修改参数的高级设置。了解更多关于数据模型。

数据结构#

当请求体参数类型为 JSON 或 XML 时,需要设置数据结构。数据结构可引用 数据模型。
了解更多关于数据结构,请参见数据模型。

返回响应和示例#

在向 API 发送请求后,服务器会返回响应。定义预期的返回结果并提供示例,是让开发人员更好地理解和使用 API 的关键步骤。
image.png
返回结果的定义主要包括以下几个部分:
1.
HTTP 状态码:确定接口可能返回的所有状态码,包括常见的 200(OK)、404(Not Found)和 500(Server Error)等。
2.
数据格式:为每个状态码定义返回结果的数据格式,可以是 JSON、XML、HTML、Raw、Binary 或其他适合的格式。
3.
数据结构:对于携带数据的响应(主要是状态码 200 的情况),详细描述返回的数据结构。这包括指定类型、嵌套对象、可选字段和数组。清晰的定义能帮助客户端开发人员了解应期望的数据及其解析方式。仅 JSON 和 XML 格式可以配置数据结构。
关于 “数据结构” 的详细信息,请参考构建数据模型。
4.
示例:提供示例响应对于展示 API 在实际场景中的表现至关重要。理想情况下,示例应基于预定义请求,展示服务器返回的数据集。示例应该准确反映响应的数据结构、格式和类型,确保与响应的数据结构定义一致。

添加返回响应#

通常建议在 API 文档中为每个接口至少定义一个成功响应和一个错误响应。这种实践可以全面覆盖不同可能的结果,帮助开发人员清晰了解 API 在各种场景下的表现。
点击 返回响应 模块右上角的 + 添加 按钮,即可添加返回响应。
image.png
通常在 API 设计中,成功的 200 OK 响应因各个接口的输出需求不同而有所差异,但错误响应如 400 Bad Request 和 404 Not Found 往往在不同接口间一致。Apifox 针对此类需求提供了响应组件功能,可以复用预定义的错误响应,从而提高文档编写效率并保持 API 的一致性。
如果不需要 “响应组件”,可以选择 添加空白响应 来定义各接口独特的返回结果。

添加响应示例#

在 Apifox 中,点击 “添加” 以增加响应示例。
一个响应可以包含多个不同的示例。在添加示例时,需要为示例命名并提供对应的响应数据。
image.png

自动生成示例#

点击 自动生成,Apifox 会根据 “返回响应的数据结构” 定义自动生成合理的响应数据。
image.png

预览接口#

完成接口设计后,点击 “确定” 保存更改,然后切换到 “接口” 标签页预览刚刚配置的接口。
上一页
新建 API 项目
下一页
请求体多示例配置
Built with