通过 Apollo 进行 GraphQL 查询

GraphQL queries via Apollo

您好,我正在开发 Android 应用程序,我需要使用 GraphQL。我试图通过 following this tutorial 首先使用 Apollo 客户端作为练习,但在执行过程中遇到了问题。它只是缺少一些有用的具体信息和细节。

目前我所坚持的是尝试构建一个 .graphql 文件。我希望至少编译代码并确保到目前为止一切都很好,但显然你甚至不能在不提供至少一个 .graphql 文件的情况下编译它。

我已经包含了下面教程中给出的示例,我的困惑主要来自于 "FeedQuery" 和 "FeedType" 究竟是什么?它们 类 是为这个特定示例定义的,还是由 Apollo 自己生成的 类 来定义任何查询?那么在定义我自己的查询或进行等效查询时,我应该只使用这两个 类 吗?这些参数是否也是定义中所必需的或特定于示例结构的?

我似乎无法在他们的教程或网站上找到关于此的更多信息。尝试学习 GraphQL 已经够难了,但本教程中缺乏详细信息让事情变得更加令人沮丧。如果他们在本教程中分享了结构的样子,那将非常有帮助,但似乎没有包括在内。

query FeedQuery($type: FeedType!, $limit: Int!) {
  feedEntries: feed(type: $type, limit: $limit) {
    id
    repository {
      name
    }
    postedBy {
      login
    }
  }
}

感谢您的帮助,如果有人 link 有更好的教程,我将不胜感激。

在 GraphQL DSL 的上下文中,FeedQuery 是一个命名查询(将其视为 Java 术语中的一种方法),您可以使用它来检索特定数据(如查询内部描述的那样) ) 来自 GraphQL 服务器。

要检索所需的数据,您需要传入两个非空参数(由 ! 表示)、feedType 和限制。第一个是由服务器实现的 GraphQL 模式定义的自定义类型。第二种是 GraphQL 标量类型。

FeedQuery 和 FeedType 都将在编译阶段转换为 Java 个对象。对于查询,您将获得适当的构建器以包含执行实际调用所需的所有信息。

您可以阅读完整的 Java 示例 here。它是您正在学习的教程的更完整版本。