gpt4 book ai didi

ios - 如何对 graphQL 模式进行比设置时创建的更进一步的更改?

转载 作者:行者123 更新时间:2023-11-30 10:54:34 27 4
gpt4 key购买 nike

所以我正在 iOS 中使用 Apollo 和 GraphCool 学习 GraphQL。根据我组合的各种教程,这是我完成的步骤。

  • 安装npm
  • 使用npm安装graphcool
  • 使用 npm 安装 apollo CLI
  • 在 Xcode 中创建新项目
  • 在项目文件夹中初始化名为“server”的新 graphcool 服务,该服务创建了多个文件,包括 types.graphqlpackage.json
  • 部署 graphcool“服务器”服务,并获取 graphql 端点。
  • 使用为目标设置的 pod Apollo 创建 pod 文件
  • 执行pod install
  • 打开通过 cocoapod install 创建的 Xcode 工作区
  • 在构建阶段添加 apollo 运行脚本
  • 将 apollo 运行脚本阶段置于编译脚本阶段之上
  • 下载 apollo 架构 (schema.json)
  • schema.json 放入与 AppDelegate.swift 相同的文件夹
  • package.json 从“server”文件夹复制到与 AppDelegate.swift 相同的文件夹中
  • 编译应用

直到这一步,它仍然编译得很好,因为这在技术上都是自动生成的。

  • Apollo API.swift 已生成
  • API.swift 添加到项目

在自动生成的types.graphql上,我有类型User,带有元素idname,和出生日期

type User @model {
id: ID! @isUnique
name: String
dateOfBirth: DateTime
}

现在,我创建了另一个名为 User.graphql 的文件,其内容如下:

query AllUsers {
allUsers {
id
name
}
}

然后编译应用程序。直到这一步,它仍然工作正常。

现在,我尝试在 User.graphql 上添加新字段 telephone

query AllUsers {
allUsers {
id
name
telephone
}
}

然后编译。在这一步,Xcode开始报错:

/User.graphql:5: Cannot query field "telephone" on type "User".

好吧,很公平。我没有在 types.graphql 上添加字段 telephone,因此 Xcode 提出抗议。因此,我转到 types.graphql 并在 User 类型上添加 telephone

type User @model {
id: ID! @isUnique
name: String
dateOfBirth: DateTime
telephone: String
}

在此之后,我还确保不要忘记使用 graphcool deploy 将更改重新部署到 graphcool。

然后我重新编译。 Xcode 仍然给出错误,无法在类型“User”上查询字段“电话”。

所以问题是:我如何传播刚刚添加到类型 Usertypes.graphql 的更改?

我尝试删除API.swift,然后重新编译。但我仍然遇到同样的错误。如果编译过程因错误而停止,API.swift 现在甚至不会被创建。

我感觉解决方案很简单,但是我已经被困在这个问题上好几天了,找不到任何解决方案。我发现没有教程讨论这个问题。这些教程假设您对 types.graphql 进行更改,Xcode 在解释其他 graphql 文件时会自动理解它。而且在互联网上,我几乎找不到和我有同样问题的人。

有人可以帮忙吗?如果有人可以帮忙,请不要跳过这个问题。至少请给我一些关于在哪里查看的简单提示。如果您需要我重写或改写我的问题以使其变得更清晰,请以您需要的方式告诉我。

最佳答案

终于找到答案了

答案确实很简单:

重新部署 graphcool 以便服务器现在使用新的数据类型后,重新下载架构 (schema.json) 并更换旧的。

没有任何初学者教程能够解释 schema.json 的重要性。它实际上就像“API手册”一样,存储了诸如您可以从服务器查询哪些对象以及它的元素是什么之类的信息。实际上,我的模式是 types.graphql 中模型的“翻译”(也来自其他 graphql 文件)。希望像我一样陷入困境的其他人也能找到这个并更快地摆脱困境。

关于ios - 如何对 graphQL 模式进行比设置时创建的更进一步的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54106066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com