在发起 API 请求时,通常需要在开发、测试和生产环境之间切换。Apidog 可以方便地向不同环境发送请求——你只需在界面右上角点击并选择所需环境即可。在环境之间切换时,Base URL 和环境变量都会使用当前环境中定义的值。创建环境#
3
配置环境输入新环境的名称。添加 Base URL 和变量。 5
选择环境要使用新环境,请从界面右上角的环境选择器中选择它。这会将其设为活动环境,并将所有变量设置为该环境中指定的值。
Apidog 在环境和 Base URL 之间保持清晰的分离。环境代表不同的部署阶段(开发、测试、生产),而 Base URL 则在每个环境中配置。在跨不同环境管理多个服务或微服务时,这种分离提供了灵活性。相比之下,Apidog 的环境直接反映开发、测试和生产等真实环境,而不是将每个 Base URL 视为单独的环境。
Base URL#
Base URL 是 Apidog 环境中的主要功能。在 Apidog 中,端点路径通常以正斜杠(/)开头,并且不包含 Base URL。发送请求时,Apidog 会将目标 Base URL 添加到端点路径前面。标准化的 Base URL 格式以协议开头,并且不包含末尾的斜杠(/)。每个 Base URL 都对应一个特定的 模块。在大多数情况下,端点会使用其模块的 Base URL 来发送请求。例如,如果 生产 环境中默认模块的 Base URL 是 http://abc.com/v1,而 你的端点路径是 /pet,那么当你在生产环境中发送请求时,实际发送的请求 URL 将是:如果端点路径以 http:// 或 https:// 开头,则不会追加 Base URL。不过,通常不建议在端点中硬编码完整 URL。
在 Apidog 中,有一个名为 BASE_URL 的特殊环境变量,用于存储当前环境中“Default Server”的 Base URL。通常不建议直接使用此变量。推荐:使用 pm.request.getBaseUrl() 获取当前端点的 Base URL。
避免:使用 pm.environment.get('BASE_URL'),因为如果端点未占用“Default Server”,它可能无法正确获取 Base URL。
如果你手动创建了一个名为 BASE_URL 的环境变量 ,它将覆盖系统预定义的 BASE_URL。注意:脚本无法修改 Base URL 配置本身。命令 pm.environment.set('BASE_URL', 'My_url') 只会创建一个名为 BASE_URL 的变量。 使用模块配置多个 Base URL#
如果你的项目端点需要连接到多个 Base URL(例如微服务),最佳管理方式是在 Apidog 中使用多个 模块。用户端点:https://user.example.com
订单端点:https://order.example.com
产品端点:https://product.example.com
1
创建模块在 API 文件夹树顶部,添加多个与你的服务对应的模块。 2
配置 Base URL在 环境管理 中,你会看到用于为每个模块设置 Base URL 的字段。输入每个环境的 URL,然后点击 保存。 3
设置模块 Base URL在模块的 根文件夹 设置中,选择该模块的端点应使用哪个 Base URL。默认设置:使用该模块列出的第一个 Base URL(推荐)。
手动指定:手 动选择另一个 Base URL。(大多数情况下不推荐)。
4
继承在子文件夹或单个端点中,你也可以指定 Base URL。 5
发送请求设置完成后,只需点击 发送。Apidog 会根据模块和环境设置确定正确的 Base URL。
添加环境变量#
在环境之间切换#
Apidog 会在工作台右上角的环境选择器中显示当前环境 。每当你发起请求或执行脚本时,Apidog 都会使用所选环境中所有变量的当前值。请求:实际发送的 HTTP 请求(包含完整 URL)。
环境中定义的服务适用于 端点。当使用 请求 标签页进行临时调试(类似于 Postman)时,如有需要,可以使用 {{Base_url}} 语法。环境迁移#
在 Apidog 中,变量的 初始值 会在团队内同步,而 当前值 仅存储在本地。这意味着当前值不会转移到其他设备。Apidog 提供导出/导入功能,用于在不同计算机之间迁移环境(包括本地当前值)。1
导出在环境管理中,将鼠标悬停在环境旁边的 ... 上,点击 导出 以获取 JSON 文件。 2
导入在目标计算机上,打开环境管理,将鼠标悬停在 ... 上,点击 导入,然后选择 JSON 文件。
环境的可见范围#
私有环境与其他环境共享相同的 服务列表(Base URL)。在私有环境中添加或删除服务会同时影响所有环境。
FAQ#
使用 pm.request.getBaseUrl() 获取当前端点的 Base URL。