You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个iOS项目中为两个不同URL配置两套不同Apollo GraphQL schema

iOS Apollo GraphQL 多schema配置实现方案

单项目多schema支持性说明

完全支持,Apollo iOS及配套CLI原生支持单项目内配置多套独立schema、对应不同请求端点,无需拆分项目。

具体配置步骤

1. 编写Apollo CLI配置文件

在项目根目录新建/修改apollo.config.js,按服务分别配置schema、操作文件路径规则,示例如下:

module.exports = {
  client: {
    // 配置多服务
    services: {
      // 第一个服务:用户服务
      userService: {
        schema: "./GraphQL/Schemas/user_schema.graphql", // 对应专属schema文件路径
        endpoint: "https://your-domain.com/user/graphql", // 对应请求URL
        includes: ["./GraphQL/Operations/User/**/*.graphql"] // 该服务的所有graphql操作文件存放路径
      },
      // 第二个服务:商品服务
      goodsService: {
        schema: "./GraphQL/Schemas/goods_schema.graphql",
        endpoint: "https://your-domain.com/goods/graphql",
        includes: ["./GraphQL/Operations/Goods/**/*.graphql"]
      }
    }
  }
}

注意:不同服务的操作文件必须分目录存放,避免生成代码时出现schema匹配错误

2. 配置Xcode构建阶段执行脚本

在Xcode的Build Phases中新增Run Script阶段,放在Compile Sources之前,脚本内容示例:

# 进入项目根目录(根据你的项目结构调整路径)
cd "${SRCROOT}/YourProjectName"

# 分别为每个服务生成API代码,指定不同的输出文件
# 生成用户服务API
apollo client:generate \
  --serviceName userService \
  --output "./GraphQL/Generated/UserAPI.swift"

# 生成商品服务API
apollo client:generate \
  --serviceName goodsService \
  --output "./GraphQL/Generated/GoodsAPI.swift"

脚本执行完成后,将生成的两个API Swift文件添加到Xcode项目中即可。

3. 运行时多客户端初始化

为每个服务单独初始化ApolloClient实例,绑定对应端点:

import Apollo

// 用户服务客户端
let userApolloClient = ApolloClient(
  url: URL(string: "https://your-domain.com/user/graphql")!
)

// 商品服务客户端
let goodsApolloClient = ApolloClient(
  url: URL(string: "https://your-domain.com/goods/graphql")!
)

发起请求时,使用对应服务的客户端调用生成的对应API即可,示例:

// 调用用户服务接口
userApolloClient.fetch(query: UserInfoQuery()) { result in
  // 处理返回结果
}

// 调用商品服务接口
goodsApolloClient.fetch(query: GoodsListQuery()) { result in
  // 处理返回结果
}

常见注意事项

  • 不同服务的schema不要重名,操作文件不要跨目录存放
  • 若使用Apollo iOS 1.x以上版本,CLI的generate命令参数略有调整,按对应版本参数规则调整即可
  • 生成代码时不要重复输出到同一个文件,避免覆盖

内容的提问来源于stack exchange,提问作者AVR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:03