通过Apollo

时间:2019-07-29 15:39:54

标签: android graphql apollo graphql-java

嗨,我正在使用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
    }
  }
}

感谢您的帮助,如果有人链接到更好的教程,我将非常感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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