如何在 Apifox 中正确使用前置 URL?

前置 URL 就是把接口地址中重复的部分提取出来统一管理。
比如你的接口地址是 https://api.example.com/v1/users
,可以把 https://api.example.com/v1
设置为前置 URL,接口中只写 /users
就行了。
发送请求时,Apifox 会自动把前置 URL 和接口路径拼接起来,变成完整的请求地址。这样做的好处是当服务器地址变更时,只需要修改前置 URL,不用一个个去改接口。
https://api.example.com/v1/users?role=admin&status=active
\________________________/\____/ \______________________/
前置 URL 接口路径 Query 参数
设置前置 URL 的具体步骤
打开 Apifox 项目,在页面右上角找到「环境管理」。Apifox 会默认为项目创建几个常用环境,比如开发环境、测试环境、正式环境,你可以直接使用这些预设环境,也可以根据需要新建其他环境。

选择一个环境后,你会看到「前置 URL」的输入框。这里填入以协议(http://
或 https://
)起始的基础地址,比如https://test.server.com
,或者加个版本号,比如https://api.example.com/v1
。

注意不要在末尾添加斜杠,根据 OpenAPI 规范的建议,前置 URL 不应以 /
结尾,而接口路径应以 /
开头。

我们推荐遵循 OpenAPI 规范,这样不仅能让接口更具兼容性,使用 Apifox 时也能体验到更完整的功能支持。
在接口中使用前置 URL
现在当你新建接口时,URL 栏里只需要输入相对路径就可以了。比如你要测试用户列表接口,直接输入 /users
,Apifox 会自动拼接成 https://api.example.com/v1/users
。

如果你的接口路径有多层,比如 /users/123/profile
,也是同样的写法,前置 URL 会与你输入的路径自动组合。
不过有个细节需要注意:如果你在接口 URL 中输入了完整的地址(以http://
或 https://
开头),那么前置 URL 就不会生效,Apifox 会优先使用你输入的完整地址。
多环境下的前置 URL 管理
大部分项目都会有开发、测试、生产等多个环境,每个环境的服务器地址都不一样,你可以为每个环境设置不同的前置 URL。
比如开发环境设置为 https://dev-api.example.com/v1
,测试环境设置为 https://test-api.example.com/v1
,生产环境设置为 https://api.example.com/v1
。
这样当你需要在不同环境间切换测试时,只需要在右上角选择对应的环境,所有接口就会自动使用相应的服务地址。

除了在右上角切换,你也可以直接在接口地址栏中选择环境,这里会显示各环境的默认前置 URL,与「环境管理」中的切换行为是等效的。

不过要注意的是,即使一个环境中配置了多个前置 URL,在地址栏中都只会显示默认的那一个。如果希望某些接口使用其他非默认的前置 URL,就得在接口中手动指定,或者通过模块来管理前置 URL。
这种多前置 URL 的配置通常出现在微服务架构中,想要让不同的接口走不同的服务地址。那么具体该怎么操作呢?下面我们就来介绍一下。
微服务下的前置 URL 管理
当项目采用微服务架构,一个项目里并不是所有接口都走同一个前置 URL,要怎么配置更合适?
针对这种“多服务多地址”的情况,在 Apifox 中可以通过两种方式来管理前置 URL。
方式一:在同一个模块中手动指定前置 URL
你可以将多个服务的接口都放在一个模块中,然后为不同目录或接口单独指定前置 URL。这种方式比较灵活,适合希望“集中管理所有接口”的项目。
如下图所示,一个模块中配置了多个前置 URL,用于对应不同的服务。

配置完成后,你可以在用户相关的目录设置里选择使用“用户服务”的地址,在订单目录里选择“订单服务”的地址。这样该目录下的所有接口都会使用对应的前置 URL。

如果不想按目录统一设置,你也可以在具体的某个接口中单独指定前置 URL。只需要在“修改接口”页面找到前置 URL 的下拉选择框,选择需要的地址即可。

不过,你也可能会觉得这种方式管理起来还是比较麻烦,特别是服务数量多了以后,你需要在很多地方去设置和维护这些配置。小一点的项目还好,项目一大维护成本就高了。
因此,我们更推荐另一种方式:将每个服务拆分为独立模块,按模块管理前置 URL。
方式二:按模块划分服务(推荐)
你可以将每个服务拆分为单独的模块,并在“环境管理”中为每个模块配置在不同环境下的前置 URL。这种方式更结构化,也更适合多人协作和长期维护。
例如在项目中为用户服务、订单服务、商品服务等分别创建模块,这里的每个模块对应一份完整独立的 Swagger/OpenAPI 规范文件。

创建好模块后,进入环境管理页面,你会发现前置 URL 的设置变成了按模块分组的形式。

每个环境下都有相同的模块结构,只是每个模块对应的前置 URL 不一样。现在你可以为每个模块分别设置对应环境的前置 URL,例如:
正式环境:
- 商品服务模块:
https://product.example.com
- 用户服务模块:
https://user.example.com
- 订单服务模块:
https://order.example.com
测试环境:
- 商品服务模块:
http://192.168.1.10:8080
- 用户服务模块:
http://192.168.1.11:8080
- 订单服务模块:
http://192.168.1.12:8080
开发环境:
- 商品服务模块:
http://localhost:3000
- 用户服务模块:
http://localhost:3001
- 订单服务模块:
http://localhost:3002

这样配置后,在模块下新建接口时,会默认使用“当前模块 + 当前环境”所对应的前置 URL,无需手动指定。例如:
- 在“用户服务模块 & 正式环境”下,接口默认使用的前置 URL 是
https://user.example.com

- 在“订单服务模块 & 测试环境”下,则是
http://192.168.1.12:8080

这个“模块 + 环境”组合,有点像一个坐标系,通过两个维度就能精准确定接口请求用的地址。不管模块有多少个、环境切换多少次,只要这两个维度明确,前置 URL 就是确定的,系统会自动帮你匹配好。
你不再需要每次手动检查“当前接口到底走的是哪个地址”,因为只要模块归好类、环境选对了,请求就一定走正确的服务地址。
前置 URL 的一些实用技巧
如果你的 API 有版本号,建议把版本号也包含在前置 URL 中。这样当 API 升级时,你只需要修改前置 URL 就能让所有接口都使用新版本。
对于需要特殊处理的接口,你完全可以在某些接口中使用完整 URL 来覆盖前置 URL。比如有些接口可能需要调用第三方服务,地址完全不同,这时候直接在那个接口中写完整地址就行。
掌握了前置 URL 的正确用法,接口管理起来应该会更加的方便。你可以回头检查一下自己项目中的前置 URL 配置,看看是否存在混乱、不规范或难维护的情况。如果有,可以参考上文内容,重新整理和配置前置 URL。
欢迎各位用户对 Apifox 继续提出使用反馈和优化意见,我们会持续优化更新,致力于为用户提供更优秀的产品功能和更极致的使用体验!