Apidog Docs
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. 发布 API 文档
  • Back to home
  • 支持中心
  • Apidog 支持中心
  • 导入/导出
    • 如何将 API 数据导入 Apidog?
    • 如何在 Apidog 中导入 cURL?
    • 如何将 Postman 环境迁移到 Apidog?
    • 如何在导入 Swagger/OpenAPI 时自动对端点分组?
  • 发送请求
    • Apidog 支持 Socket.IO 吗?
    • 为什么参数值中的 “+” 会被解码为空格?
    • 如何在 Apidog 中发送请求?
    • 如何在 Apidog 中发送 graphQL 请求?
    • 如何在 Apidog 中发送 gRPC 请求?
    • 如何在 Apidog 中发送 SOAP/WebService 请求?
    • 如何在 Apidog 中发送 WebSocket 请求?
    • Apidog 是否支持 WebSocket API 中的预请求/测试脚本和断言?
    • 如何在 Apidog 中发送 SSE 请求?
    • 如何在文件夹级别添加默认头部?
    • Apidog 是否支持 gRPC API 中的预请求/测试脚本和断言?
    • ELANREFUSED.DNS 解析器错误
    • 为什么我在发送请求时会收到 “socket hang up” 错误?
    • 修复请求错误
      • 修复 read ECONNRESET 错误
      • 修复 ECONNREFUSED 错误
      • 修复 ETIMEDOUT 错误
      • 修复 ENOTFOUND: Couldn't resolve host 错误
      • 修复 ENOTFOUND: getaddrinfo ENOTFOUND www 错误
      • 修复 connect EHOSTUNREACH 错误
  • 设计 API
    • 如何在路径中使用变量?
    • 我可以将响应组件用作默认响应吗?
    • 如何查看谁修改了端点?
    • 如何在 Apidog 中批量删除端点文件夹?
    • 如何批量为端点路径添加/移除前缀?
    • 如何在 Schema 编辑器中移动属性的层级?
    • 如果一个字符串属性有多个枚举值,并且会在多个位置使用,如何在整个文档中一致地引用这个枚举?
    • 如何获取 Apidog 资源文件夹 ID?
    • 如何获取 Apidog 的资源文件夹 ID?
    • 如何在 URL 路径中使用变量?
    • 如果端点、文档或测试场景被意外删除,我该怎么办?
    • Apidog 是否支持自定义端点的请求代码?
    • 将 Swagger/OpenAPI 导入 Apidog 时,如何自动对端点分组?
    • 如何在模拟响应中生成不重复的数组数据?
    • 为什么路径中不支持输入 "#"?
  • 调试 API
    • Apidog 如何与第三方密钥管理系统集成?
    • 为什么同一个请求在其他工具(如 Postman)中可以正常工作,但在 Apidog 中不行?
    • 如何在 Apidog 中从数据库获取变量值?
    • 如何将环境从其他工具迁移到 Apidog?
    • 如何在 Apidog 中使用脚本进行断言?
    • JSONPath 只能提取数组。如何在 Apidog 中从数组中提取单个元素?
    • 当不同环境具有不同的数据库账号凭据时,如何在 Apidog 中配置数据库操作?
    • 如何在自定义脚本中获取服务基础 URL?
    • 当 API 响应过大时,为什么 Apidog 会报告超出最大 Node.js 字符串长度的错误?
    • 控制台打印的大小限制是多少?为什么打印大文件时会出现错误?
    • 如何解决 Windows 上的 DB2 数据库连接错误?
    • 为什么我在 Apidog 中连接 Oracle 数据库时会遇到错误 NJS-045?
    • 如何在 Apidog 自定义脚本中生成动态值?
    • 为什么客户端请求同一个端点可以成功,但在 Web 端调试时却出现错误:“Unable to request address”?
    • 为什么响应过大时 Apidog 会报错?
    • 如何使用 Apidog 录制端点?
    • 定义端点响应时,是否允许端点没有响应内容?
    • 如何在自定义脚本中获取服务的 baseURL?
    • 如何在 Apidog 中查看原始报文?
    • 为什么在发起请求时会看到 “Invalid URI xxx” 错误?
    • 如何在 Apidog 脚本中发起异步请求?
    • 为什么发送请求时会看到 “Couldn't resolve host” 消息?
    • 控制台打印大小限制是多少?为什么打印大文件时会报错?
    • 如何在端点请求中上传文件?
    • 如果 Apidog 崩溃或响应数据不显示,该怎么办?
    • Apidog 用于 OAuth2.0 的官方重定向 URI
  • Mock API 数据
    • 如何自动模拟 API?
    • Apidog 模拟可以做什么?
    • 如何在 Apidog 中模拟固定 API 数据?
    • 如何在 Apidog 中模拟条件数据?
    • 如何在 Apidog 中启用云端模拟?
    • 如何在 Apidog 中启用自托管模拟?
    • Apidog 支持模拟 WebSocket API 吗?
    • 为什么浏览器请求模拟端点时不返回内容?
  • 自动化测试
    • 为什么测试场景在我的本地客户端运行没有问题,但在 Apidog CLI 或运行器中运行时会出错?
    • 如何在 Apidog 中创建测试场景?
    • 如何在测试步骤之间传递数据?
    • 为什么我无法成功引用前置步骤数据?
    • 如何在 Apidog 中使用 foreach 循环?
    • 从端点/端点用例同步数据有哪些区别?
    • 如何在 Apidog 中使用测试数据?
    • 如何在 Apidog 的脚本中检索测试数据?
    • 如何在 Apidog 中批量运行测试场景?
    • 如何在 Apidog 中安排测试任务?
    • 如何在 Apidog 中运行性能测试?
    • 如何在性能测试中查看实际请求和响应?
    • 如何在 Apidog 中导出性能测试报告?
    • 如何使用数据库查询结果作为循环 API 请求的参数?
    • 在 CI/CD 期间使用 ApiDog 捕获并验证 Stripe Webhook
    • 如何解决“Error: unable to verify the first certificate on runner”错误?
    • General Runner Docker 容器 “Not Found” 错误。
    • 如何在 Apidog Web 版中为通用 Runner 设置服务器 Host?
    • 为什么定时测试场景最终显示 0 个请求?
    • 如果在 Runner 或 CLI 中找不到文件上传参数,我该怎么办?
    • 如何使用 Runner 运行包含上传文件步骤的测试场景?
    • 如何解决“Error: unable to verify the first certificate on runner”错误?
    • 当 Runner 出现问题时,如何访问和搜索 Runner 日志以识别问题?
    • 如果端点参数是上传文件,并且在 Runner 或 CLI 中找不到,我该怎么办?
    • 为什么 API 用例变更时测试步骤不会自动同步?
    • 为什么在 Markdown 文档中使用多个美元符号会导致某些内容无法正确显示?
    • 自托管 Runner 在执行任务后会在服务器上生成测试报告吗?
    • 我可以为测试场景中的请求添加统一的前置/后置处理器吗?
    • 如何在单次自动化测试运行期间保持动态值一致?
  • 发布 API 文档
    • 如何在已发布的文档中隐藏所有 Apidog 标志?
    • 当 API 规范更新时,API 文档会变化吗?
    • 如何在 Apidog 中将 API 分享给协作者?
    • 如何自定义 Apidog 文档的域名?
    • 如何在 Apidog 中创建多版本文档?
    • Apidog 中发布文档站点的共享范围
    • Apidog 中 Share Doc 列表的共享范围
    • 为什么已发布的共享文档没有显示主机名?
    • 文档用户如何在共享文档中修改 Base URL?
    • 我可以复制已发布的 Apidog 文档用于自己的项目吗?
    • 如何在 Apidog 在线文档中共享头部(例如 Token)?
    • 为什么我的团队成员找不到已发布的文档?
    • 如何修复自定义域名上的 SSL 证书过期或 Cloudflare 526 错误?
    • 自定义 SMTP 配置成功,但允许列表用户未收到 OTP 邮件
  • Markdown
    • 如何使用卡片链接到 Apidog 内的各个页面或端点?
    • 为什么在 Markdown 文档中使用多个 $ 符号时,部分内容无法正确显示?
    • 如何在 Apidog Markdown 中使用透明背景图片?
    • 如何设置 Markdown 表格的列宽?
    • 如何将内部 API、文档、数据模式或文件夹插入到 Markdown 文档中?
    • 如何在 Apidog 卡片组件中添加指向项目内文档或端点的链接?
  • 分支
    • 如何访问迭代分支?
  • 管理
    • 如何静默安装 Apidog 客户端?
    • 为什么我明明拥有管理员权限,却看到“No Permission”错误?
    • 如何查看 Runner 版本号?
    • Apidog 支持 win7 吗?
    • 为什么安装后 Apidog 显示错误“Cannot locate program entry point DiscardVirtualMemory in dynamic link library KERNEL32.dll”?
    • 订阅变更和退款
    • Web 请求有效,但应用出现 “read ECONNRESET”——为什么?
    • Windows 系统更新后为什么无法打开 Apidog?
    • 为什么 Windows 系统更新后 Apidog 无法打开
  • 计费
    • 我可以在 Apidog 中为我的团队设置单独的账单账户吗?
    • Apidog 上的团队访问与计费问题
    • 受邀团队成员无法访问 Apidog。
    • 将个人付费团队转移到组织
  • 私有化部署
    • Apidog 自托管(企业)版本中的用户和访问管理
  • Web 与客户端
    • Linux 桌面版的下载与安装
  1. 发布 API 文档

如何自定义 Apidog 文档的域名?

默认情况下,你的文档可通过 [subdomain].apidog.io 域名访问。不过,你可以通过设置自定义域名来进行自定义,这意味着你的受众将能够在符合你组织需求的域名上访问你的文档。
具有管理员权限的用户可以设置自定义域名。请按照以下步骤设置自定义域名。

开始自定义域名设置#

你可以在项目的 Share 模块中访问为项目设置自定义域名的选项。只需点击侧边栏中的 Share Docs 菜单,然后在二级菜单中导航到 Publish 设置页面。
你会看到一个名为 Custom Domain 的部分。点击 Edit 按钮以开始自定义域名设置。
设置自定义域名有两种选项:
1.
CNAME:这是推荐选项。它最容易设置和维护。它也是最灵活的选项,因为它允许你为子域名或根域名设置自定义域名。
2.
Reverse Proxy:此选项更高级,需要你使用内容分发网络(CDN)或在自己的服务器上设置反向代理。推荐熟悉这些技术的用户使用。

配置 CNAME#

仅当你在上一步中选择了 CNAME 选项时,此内容才适用。
DNS 配置发生在 Apidog 之外,即你为域名使用的 DNS 提供商处。
此步骤包含三个部分:
1.
配置一条 CNAME 记录
2.
等待更改生效

配置 CNAME 记录#

不同 DNS 控制面板中字段名称以及实际需要输入的记录配置内容可能有所不同,但我们在这里涵盖了最常见的选项。如果你不确定,请与你的 DNS 提供商确认。
type 是你要创建的 DNS 记录类型。在这里,你需要选择 CNAME。
name 或 DNS entry 是你输入子域名的位置。你可能需要输入完整内容(例如 docs.example.com),也可能只需要输入顶级域名前面的部分(例如 docs)。如果你不确定使用哪种方式,请咨询你的 DNS 提供商。
target、value 或 destination 是子域名应指向的位置。当你选择 DNS CNAME 选项时,可以在 Apidog 的 Publish 设置中看到此值。它看起来类似于 {projectId}.apidog.io。你应完整输入此值(例如 12345678.apidog.io)。
你可能还会看到一个名为 TTL 的字段,它代表 Time To Live(生存时间)。它是 DNS 记录可以被缓存的秒数。如果你不确定该设置什么,我们建议选择 Auto 或保留默认值。
以下是在 Cloudflare 控制面板中正确配置的示例:
Cloudflare 控制面板中正确配置的自定义域名
**注意:**CNAME 记录不能与同名的其他记录共存。如果你已为所选子域名配置了 A 记录、AAAA 记录、TXT 记录或任何其他类型的记录,则需要先删除这些记录,然后 再添加 CNAME 记录。

你正在使用 Cloudflare 吗?#

如果你在 Cloudflare 控制面板中配置 DNS,请确保 Cloudflare 的代理(橙色云朵,在你的域名设置中也称为“Proxy status”)已禁用。原因有两个:
此选项会向公众隐藏你域名的 DNS 目标,从而阻止 Apidog 正常对你的自定义域名执行例行检查。
你的自定义域名已经会受益于 CDN。
再次提醒,请关闭 Cloudflare 代理,以确保你的文档能够正常提供服务。

等待更改生效#

简短回答:在进入下一步之前,你可能需要等待 10 minutes ~ 48 hours,以便 DNS 更改生效。
还记得我们之前提到的 TTL(Time To Live)字段吗?DNS 记录会被缓存一段时间——出于性能原因,这通常是一件好事,因为它们通常不会频繁更改。当它们_确实_发生更改时,会有一段时间(TTL 值),DNS 缓存服务器需要等待其缓存过期,然后才会检查是否有任何更改并相应地处理。
在大多数情况下,最好至少等待 10 分钟后再进入下一步也是最后一步。有时它可能会更快更新,也可能需要更长时间。超过 48 小时的情况很少见。
想检查这个称为_传播_的过程进展如何吗?你可以使用 DNS 查询工具,例如 WhatsMyDNS。输入你的完整子域名,从下拉列表中选择 CNAME,然后按下 Search 按钮。世界各地的 DNS 缓存服务器会响应,告知你它们缓存的结果是什么。你需要定期检查这些结果,直到绝大多数都返回你分配的 CNAME 值。

配置 CDN 或你自己的反向代理服务器#

仅当你在上一步中选择了 Reverse Proxy 选项时,此内容才适用。

将 AWS CloudFront 配置为反向代理#

你可以利用 AWS CloudFront、Cloudflare Enterprise 等云厂商提供的 CDN 服务,将其设置为你自己的反向代理服务器。
在以下示例中,我们将把 AWS CloudFront 配置为 Reverse Proxy。
1.
登录 AWS,并导航到 CloudFront。点击 Create Distribution。
2.
配置你的分配设置。以下是你需要更改的值。
设置值
Origin Domain Name设置为 {projectId}.apidog.io
Name源站的描述。此值可让你区分同一分配中的多个源站,因此必须唯一。
Origin Protocol Policy设置为仅 HTTP
Alternate Domain Names (CNAMEs)设置为你的自定义域名(与你在自定义域名设置期间在 Publish 设置中配置的域名相同)
SSL Certificate设置为存储在 AWS Certificate Manager (ACM) 中的自定义域名 SSL 证书。
3.
提供 Origin Custom Headers 的信息(只有在你提供 Origin Domain Name 后,Header Name 和 Value 字段才会出现)
Header Name值
X-Apidog-Project-ID设置为 {projectId}
TIP
你可以在 Apidog 项目设置中找到 projectId 值。
4.
配置 Default Cache Behavior Settings。以下是你需要更改的值。
设置值
Viewer Protocol Policy选择 Redirect HTTP to HTTPS
Allowed HTTP Methods选择 GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE。
Cache and origin request settings选择 Use legacy cache settings。Headers、Query strings 和 Cookies 均选择 All
5.
不要启用 AWS Web Application Firewall (WAF)。
6.
点击页面底部的 Create distribution。你将在 CloudFront Distributions 列表中看到新创建的分配。请注意,在分配完成 Deployed 之前,Status 将显示为 In progress。
7.
为你的自定义域名在 DNS 中添加一条新的 CNAME 记录,指向你的 Distribution 的 CloudFront Domain Name。可以通过点击你的 Distribution ID,在 General 选项卡下的 Distribution domain name 中找到它(例如 fd1fbc7cac6197.cloudfront.net)。

配置你自己的反向代理服务器#

你可以为你的 API 文档配置自己的反向代理服务器。在以下示例中,我们将使用 Nginx 作为反向代理服务器。
1.
将以下内容添加到 Nginx 配置文件中以进行简单配置。
Caddy 配置示例:
:8080 {
        handle_path /* {
                reverse_proxy http://{projectId.apidog.io {
                        header_up X-Apidog-Project-ID {projectId}
                        header_up Host "docs.example.com"
                }

      }
}
}
你可以在 Apidog 项目设置中找到 {projectId} 值。
2.
为你的自定义域名配置 DNS 记录,使其指向你的反向代理服务器。

将 API 文档部署到自定义域名的子目录#

Apidog 的 Reverse Proxy 允许将 API 文档部署到自定义域名的子目录。例如,你可以将文档部署到 https://example.com 这样的域名下的 /api-docs 路径。当用户访问 https://example.com/api-docs 时,他们将访问由 Apidog 托管的在线 API 文档。

配置步骤:#

1.
在 Apidog 的 Custom Domain 设置页面,输入你的自定义域名。
2.
选择 Reverse Proxy 并启用 Use Subdirectory,然后输入子目录路径。
3.
接下来,你需要修改 Web 服务器的配置文件。假设你使用 Nginx 来代理你的服务,可以参考以下配置:
proxy_pass:将客户端请求转发到另一台服务器(例如 Apidog 的 API 文档服务器)。
proxy_set_header:设置代理服务器发送到上游服务器的请求头部,确保请求被正确处理。
/api-docs/ 是自定义域名的子目录,并且在 Nginx 配置中必须以 / 结尾。
http://{projectId}.apidog.io/ 也必须以 / 结尾。
将 {projectId} 替换为你的 Apidog 项目 ID。
docs.example.com 是示例自定义域名。请将其替换为你的实际自定义域名。
配置完成后,你需要在服务器上重启 Nginx。

启用 HTTPS#

Apidog 的在线文档支持 HTTPS 协议,相比 HTTP,它有几个优势:
安全数据传输:HTTPS 使用 SSL/TLS 加密来确保数据传输安全,防止第三方拦截信息。
SEO 优化:搜索引擎爬虫更倾向于使用 HTTPS,因为它提供更好的安全性和隐私保护。因此,HTTPS 网站在搜索引擎排名中的权威性可能高于 HTTP 网站。

启用 HTTPS 的步骤:#

1.
前往 Publish 页面并打开 Custom Domain 选项卡。
2.
开启 HTTPS 以启用 HTTPS;你也可以选择启用 Always Use HTTPS,以防止通信被劫持或遭受中间人攻击。

SSL 证书管理#

启用 HTTPS 后,你可以选择如何管理你的 SSL 证书:
Generated by Apidog:Apidog 将自动生成 SSL 证书。
Use Your Own Certificate:你可以上传由证书颁发机构签发的 SSL 证书和私钥(例如 Let's Encrypt)。

故障排除#

如果你在设置自定义域名时遇到问题,请通过 Discord 联系我们。

你正在使用 Apidog Europe 吗?#

如果你正在使用 Apidog Europe,请确保你使用的是自定义域名设置所需的正确域名。
Apidog Europe 在之前设置中的正确域名是 {projectId}.eu.apidog.com。
Modified at 2026-06-09 08:55:47
Previous
如何在 Apidog 中将 API 分享给协作者?
Next
如何在 Apidog 中创建多版本文档?
Built with