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

如何在 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 的具体步骤


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

「前置 URL」的输入框


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

根据 OpenAPI 规范的建议


我们推荐遵循 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 的配置通常出现在微服务架构中,想要让不同的接口走不同的服务地址。那么具体该怎么操作呢?下面我们就来介绍一下。

微服务下的前置 URL 管理

当项目采用微服务架构,一个项目里并不是所有接口都走同一个前置 URL,要怎么配置更合适?

针对这种“多服务多地址”的情况,在 Apifox 中可以通过两种方式来管理前置 URL。

方式一:在同一个模块中手动指定前置 URL

你可以将多个服务的接口都放在一个模块中,然后为不同目录或接口单独指定前置 URL。这种方式比较灵活,适合希望“集中管理所有接口”的项目。

如下图所示,一个模块中配置了多个前置 URL,用于对应不同的服务。

在同一个模块中手动指定前置 URL

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

在用户相关的目录设置里选择使用“用户服务”的地址


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

只需要在“修改接口”页面找到前置 URL 的下拉选择框


不过,你也可能会觉得这种方式管理起来还是比较麻烦,特别是服务数量多了以后,你需要在很多地方去设置和维护这些配置。小一点的项目还好,项目一大维护成本就高了。

因此,我们更推荐另一种方式:将每个服务拆分为独立模块,按模块管理前置 URL。

方式二:按模块划分服务(推荐)

你可以将每个服务拆分为单独的模块,并在“环境管理”中为每个模块配置在不同环境下的前置 URL。这种方式更结构化,也更适合多人协作和长期维护。

例如在项目中为用户服务、订单服务、商品服务等分别创建模块,这里的每个模块对应一份完整独立的 Swagger/OpenAPI 规范文件。

按模块划分服务


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

前置 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,无需手动指定。例如:

  • 在“用户服务模块 & 正式环境”下,接口默认使用的前置 URL 是https://user.example.com
默认使用“当前模块 + 当前环境”所对应的前置 URL
  • 在“订单服务模块 & 测试环境”下,则是 http://192.168.1.12:8080
订单服务模块 & 测试环境


这个“模块 + 环境”组合,有点像一个坐标系,通过两个维度就能精准确定接口请求用的地址。不管模块有多少个、环境切换多少次,只要这两个维度明确,前置 URL 就是确定的,系统会自动帮你匹配好。

你不再需要每次手动检查“当前接口到底走的是哪个地址”,因为只要模块归好类、环境选对了,请求就一定走正确的服务地址。

💡
想了解更多关于「模块」的概念,可以看看官方帮助文档里的模块部分


前置 URL 的一些实用技巧

如果你的 API 有版本号,建议把版本号也包含在前置 URL 中。这样当 API 升级时,你只需要修改前置 URL 就能让所有接口都使用新版本。

对于需要特殊处理的接口,你完全可以在某些接口中使用完整 URL 来覆盖前置 URL。比如有些接口可能需要调用第三方服务,地址完全不同,这时候直接在那个接口中写完整地址就行。



掌握了前置 URL 的正确用法,接口管理起来应该会更加的方便。你可以回头检查一下自己项目中的前置 URL 配置,看看是否存在混乱、不规范或难维护的情况。如果有,可以参考上文内容,重新整理和配置前置 URL。

欢迎各位用户对 Apifox 继续提出使用反馈和优化意见,我们会持续优化更新,致力于为用户提供更优秀的产品功能和更极致的使用体验!

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态