Apollo Android 正在生成一个大写变量不一致的数据类

Posted

技术标签:

【中文标题】Apollo Android 正在生成一个大写变量不一致的数据类【英文标题】:Apollo Android is generating a data class with inconsistently uppercased variables 【发布时间】:2021-08-20 11:49:32 【问题描述】:

我正在使用 Apollo android v2.1.0,并且有一个带有自动生成输入类数组的 mutation

mutation MyMutation($values: [MyInputClass!]) 
    exampleApi(values: $values)

MyInputClass 的输入字段以大写和小写字母开头:


   "kind":"INPUT_OBJECT",
   "name":"MyInputClass",
   "description":null,
   "fields":null,
   "inputFields":[
      
         "name":"id",
         "description":null,
         "type":
            "kind":"NON_NULL",
            "name":null,
            "ofType":
               "kind":"SCALAR",
               "name":"String",
               "ofType":null
            
         ,
         "defaultValue":null
      ,
      
         "name":"Orientation",
         "description":null,
         "type":
            "kind":"SCALAR",
            "name":"Int",
            "ofType":null
         ,
         "defaultValue":null
      
   ]

当 Apollo Android 尝试为 MyInputClass 生成数据类时,它失败了:

Unresolved reference: Orientation

这是由生成的MyInputClass.kt 不一致地使用orientationOrientation 引起的:

if (this@MyInputClass.Orientation.defined) 
   writer.writeInt("orientation", this@MyInputClass.orientation.value)

【问题讨论】:

【参考方案1】:

这是旧版本库的问题,是fixed in v2.4.5。至少将您的库更新到该版本以解决它。

Here is the issue for it 和 here is the fix。

【讨论】:

以上是关于Apollo Android 正在生成一个大写变量不一致的数据类的主要内容,如果未能解决你的问题,请参考以下文章

apollo-android 在请求中不提供变量

如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类

从子包访问生成的 Apollo 类 - Kotlin

Apollo Android 客户端 - 无法访问类路径上生成的类

Angular Apollo 将 URI 注入 graphql.module.ts

如何获取带有变量的graphql查询标签的打字稿定义?