加入我们,从10月8日至10日在纽约市,了解有关GraphQL联邦和API平台工程的最新技巧、趋势和新闻。加入我们,在纽约市2024年的GraphQL峰会
文档
免费开始

4. 执行第一个查询


要执行第一个,你需要创建一个ApolloClient的实例并使用你的查询进行新的调用。

创建ApolloClient

在你的com.example.rocketreserver包下创建一个名为Apollo.kt的新文件,并在其中创建一个ApolloClient实例:

app/src/main/java/com/example/rocketreserver/Apollo.kt
import com.apollographql.apollo.ApolloClient
val apolloClient = ApolloClient.Builder()
.serverUrl("https://apollo-fullstack-tutorial.herokuapp.com/graphql")
.build()

注意: apolloClient 是一个顶级 ,以便稍后可以从应用的其它部分重用它以提高性能。重用 apolloClient 允许重用底层的 OkHttp 实例、相关线程池和连接。在真实应用中,您可能希望使用一个 依赖注入框架 来共享 ApolloClient。

创建 ApolloClient 简单到只需提供您的 GraphQL 后端端点。在我们的案例中是 https://apollo-fullstack-tutorial.herokuapp.com/graphql

执行查询

打开 LaunchList.kt 并更新 LaunchList 组合函数的内容。使用 apolloClient 和生成的 LaunchListQuery 执行一个新的 query

app/src/main/java/com/example/rocketreserver/LaunchList.kt
@Composable
fun LaunchList(onLaunchClick: (launchId: String) -> Unit) {
LaunchedEffect(Unit) {
val response = apolloClient.query(LaunchListQuery()).execute()
Log.d("LaunchList", "Success ${response.data}")
}

多亏了 Kotlin 协程,即使在代码看起来是同步的情况下,查询也将在一个后台线程中执行。

注意: 为了简单起见,我们正在一个 LaunchedEffect 块中执行 query。在真实应用中,您可能希望在 ViewModel 中进行,并另外使用 分层架构

测试您的查询

运行应用。您应该在 logcat 输出中看到以下内容

(logcat)
2023-03-14 12:08:30.694 16611-16611/com.example.rocketreserver
D/LaunchList: Success Data(launches=Launches(launches=[Launch(
id=109, site=CCAFS SLC 40), Launch(id=108, site=VAFB SLC 4E),
Launch(id=107, site=KSC LC 39A), Launch(id=106, site=CCAFS SLC
40), Launch(id=105, site=CCAFS SLC 40), Launch(id=104, site=
KSC LC 39A), Launch(id=103, site=KSC LC 39A), Launch(id=102,
site=KSC LC 39A), Launch(id=101, site=CCAFS SLC 40), Launch(
id=100, site=CCAFS SLC 40), Launch(id=99, site=KSC LC 39A),
Launch(id=98, site=CCAFS SLC 40), Launch(id=97, site=CCAFS SLC
40), Launch(id=96, site=CCAFS SLC 40), Launch(id=95, site=
CCAFS SLC 40), Launch(id=94, site=KSC LC 39A), Launch(id=93,
site=KSC LC 39A), Launch(id=92, site=KSC LC 39A), Launch(id=91
, site=CCAFS SLC 40), Launch(id=90, site=CCAFS SLC 40)]))

这意味着请求已正确执行,现在您有一个发射场列表 🚀🚀🚀

接下来,让我们将此数据连接到您的UI

上一页
3. 编写您的第一个查询
下一页
5. 将查询连接到您的UI
评价文章评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc. 旗下的 Apollo GraphQL。

隐私政策

公司