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

无需apollo-runtime使用模型


apollo-runtimeApolloClient 提供了执行网络请求和与缓存交互的支持,但您可以在不使用运行时的情况下使用生成的模型和分析器,并使用您选择的网络层进行HTTP调用。

为此,请删除 com.apollographql.apollo:apollo-runtime 依赖项,并替换为:

build.gradle
implementation("com.apollographql.apollo:apollo-api:4.0.0")

组合HTTP请求体

要组合一个要发送到服务器的HTTP POST请求体,请使用 composeJsonRequest:

/**
* jsonRequest contains data to be sent to the server
* {
* "query": ...
* "variables": ...
* "extensions": ...
* }
*/
val body = buildJsonString {
query.composeJsonRequest(this, customScalarAdapters)
}
/**
* Send it to your backend
*/
val httpResponse = sendHttpRequest(
"POST",
"https://com.example/graphql",
"application/json",
body
)

解析HTTP响应体

要将网络响应解析到类型安全模型中,请使用 parseJsonResponse:

/**
* jsonResponse should contain a json with data and possibly errors:
*
* {
* "data": ...
* "errors": ...
* "extensions": ...
* }
**/
val jsonReader = httpResponse.body.source().buffer().jsonReader()
val response = operation.parseJsonResponse(jsonReader)
println(response.data)

组合HTTP响应体

在对您的集成测试中,您还可以从程序创建的 数据 中构建一个完整的响应。为此,请使用 composeJsonResponse

/**
* Build a fake data object
**/
val data = SomeQuery.Data(...)
/**
* jsonResponse contains a json with data and possibly errors:
* {
* "data": ...
* "errors": ...
* "extensions": ...
* }
**/
val jsonResponse = buildJsonString {
operation.composeJsonResponse(this, data)
}
mockServer.enqueue(jsonResponse)
上一页
自定义HTTP客户端
下一页
认证
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,即Apollo GraphQL。

隐私政策

公司