Gio*_*fas 11 android apollo graphql moshi
我使用Apollo Android 库对 GraphQL 端点进行查询。一切正常,直到我尝试将结果转换回 JSON 字符串(将它们存储在Room 数据库中)。我天真地尝试使用Moshi,但是由于以下错误而失败:
无法获得可用的额外产品:接口 com.example.MyQuery$MyFragmentInterface 没有 JsonAdapter
在哪里 MyFragmentInterfaceApollo 生成的用于处理查询片段的接口中。
所以,我试图找到 Apollo 库是否有/生成任何转换方法,即 sth like toJson()/fromJson(),用于生成的模型,但是我找不到任何可用的东西。
我错过了一些明显的东西吗?
从 Apollo 1.3.x 开始,Java 中有一个Operation.Data.toJson()扩展函数 (Kotlin) 和相应的serialize静态方法。检查https://www.apollographql.com/docs/android/advanced/no-runtime/#converting-querydata-back-to-json
对于相反的 Json string to Query.Data,我使用类似以下内容:
fun String?.toMyData(): MyQuery.Data? {
this ?: return null
val query = MyQuery()
val response: Response<MyQuery.Data> =
OperationResponseParser(query,
query.responseFieldMapper(),
ScalarTypeAdapters.DEFAULT)
.parse(Buffer().writeUtf8(this))
return response.data
}
Run Code Online (Sandbox Code Playgroud)
尝试Postman看看错误是否也出现在那里https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |