嗨,我正在使用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
}
}
}
感谢您的帮助,如果有人链接到更好的教程,我将非常感谢。
答案 0 :(得分:1)
在GraphQL DSL的上下文中,FeedQuery是一个命名查询(将其视为Java术语中的一种方法),可用于从GraphQL服务器检索特定数据(如查询内部所描述)。
要检索所需的数据,您需要传入两个非空参数(用!
表示),feedType和limit。第一种是由服务器实现的GraphQL模式定义的自定义类型。第二个是GraphQL标量类型。
在编译阶段,FeedQuery和FeedType都将转换为Java对象。对于查询,将为您提供适当的构建器,以包括执行实际调用所需的所有必要信息。
您可以阅读完整的Java示例here。这是您正在学习的教程的更完整版本。