在 GraphQL (Apollo) 中转换 InputType 对象
Cast InputType object in GraphQL (Apollo)
我有这种类型的列表(地址是我的 java class):
List<Address> addresses = new ArrayList<>();
public class Address {
...
}
我必须执行这种类型的请求:
apolloClient = ApolloClient.builder()
.serverUrl(mContext.getString(R.string.graphqlUrl))
.okHttpClient(okHttpClient)
.addCustomTypeAdapter(CustomType.LISTOFMAPTOOBJECT, new AddressCustomTypeAdapter().customTypeAdapter())
.build();
apolloClient.mutate(
UpdateProfileAddressesMutation.builder()
.addresses(?)
.build()
).enqueue(new ApolloCall.Callback<UpdateProfileAddressesMutation.Data>() {
...
});
但我不知道我必须在 .addresses(?) 中作为参数发送什么。此方法要求我发送一个 AddressInput 的 ArrayList,它是一个 graphql class autogenerate.
public final class AddressInput implements InputType { ... }
如何在 AddressInput 中转换我的地址?
如果我尝试
AddressInput ad = new AddressInput();
我有以下错误"Cannot be accessed from outside package"
生成的输入类型有一个可用于实例化它的构建器方法,因此您的代码如下所示:
// Java
AddressInput address = AddressInput
.builder()
.city("San Francisco")
.state("CA")
.build();
// Kotlin
val address = AddressInput
.builder()
.city("San Francisco")
.state("CA")
.build()
如果 AddressInput
中的任何字段也是输入对象类型,您需要以类似的方式构建它们。
我有这种类型的列表(地址是我的 java class):
List<Address> addresses = new ArrayList<>();
public class Address {
...
}
我必须执行这种类型的请求:
apolloClient = ApolloClient.builder()
.serverUrl(mContext.getString(R.string.graphqlUrl))
.okHttpClient(okHttpClient)
.addCustomTypeAdapter(CustomType.LISTOFMAPTOOBJECT, new AddressCustomTypeAdapter().customTypeAdapter())
.build();
apolloClient.mutate(
UpdateProfileAddressesMutation.builder()
.addresses(?)
.build()
).enqueue(new ApolloCall.Callback<UpdateProfileAddressesMutation.Data>() {
...
});
但我不知道我必须在 .addresses(?) 中作为参数发送什么。此方法要求我发送一个 AddressInput 的 ArrayList,它是一个 graphql class autogenerate.
public final class AddressInput implements InputType { ... }
如何在 AddressInput 中转换我的地址?
如果我尝试
AddressInput ad = new AddressInput();
我有以下错误"Cannot be accessed from outside package"
生成的输入类型有一个可用于实例化它的构建器方法,因此您的代码如下所示:
// Java
AddressInput address = AddressInput
.builder()
.city("San Francisco")
.state("CA")
.build();
// Kotlin
val address = AddressInput
.builder()
.city("San Francisco")
.state("CA")
.build()
如果 AddressInput
中的任何字段也是输入对象类型,您需要以类似的方式构建它们。