从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.apollo3.ApolloClient
val apolloClient = ApolloClient.Builder()
.serverUrl("https://apollo-fullstack-tutorial.herokuapp.com/graphql")
.build()

注意apolloClient是一个顶级,这样就可以在之后的程序其他部分重用它以提高性能。重用apolloClient可以重用其底层的OkHttp实例和相关线程池以及连接。在实际应用中,你可能想要使用一个依赖注入框架来共享ApolloClient

创建后端的端点即可创建ApolloClient。在我们的例子中是https://apollo-fullstack-tutorial.herokuapp.com/graphql

执行查询

打开 LaunchList.kt 并更新 LaunchList 可组合函数的内容。使用 apolloClient 和生成的 LaunchListQuery 执行新查询:

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 块中执行 查询。在实际应用程序中,您可能想在 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名义。

隐私政策

公司