Фрагменты с Apollo kotlin Graphql не получают тип фрагмента в ответ с помощью Moshi ConverterAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Фрагменты с Apollo kotlin Graphql не получают тип фрагмента в ответ с помощью Moshi Converter

Сообщение Anonymous »

При использовании фрагмента в моем запросе для вызова Graphql я столкнулся с проблемой, связанной с фрагментом ниже во время преобразования Moshi.
У меня есть такой запрос

Код: Выделить всё

fetchData($userId: String!)
{
...UserDataFields
}

Код: Выделить всё

fragment UserDataFields on UserData {
id,
name,
profileImage
}
Когда я вызываю API и копирую ответ из Logcat Android, конвертирую его в файл JSON и использую его с конвертером Moshi в своих модульных тестах, чтобы имитировать ответ, я вижу, что ответ не соответствует включите UserDataFields, это показано ниже:

Код: Выделить всё

{
"data": {
"fetchData": {
"__typename": "UserData",
"id": "23455",
"name": "example",
"profile": {
....
}
}
}
Но мои типы, сгенерированные Kotlin, имеют

Код: Выделить всё

Data(
public val fetchData: FetchData?
):Query.Data

FetchData(
public val __typename: String,
public val userDataFields: UserDataFields
)

UserDataFields(
public val id: String,
public val name: String,
public val profile: Profile,
): Fragment.Data

Он ищет данные UserDataFields внутри json ответа, но я получаю свойства непосредственно в ответ, без вложения в UserDataFields.
Вот код преобразования Moshi:

Код: Выделить всё

val mockResponse = typeFromLocalJson(
"my json response file path",
Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
).getOrhandle {throw it }
Он не генерирует исключение, он ищет свойство UserDataFields внутри fetchData.., которое недоступно в json, поэтому возвращает значение null.
Кто-нибудь может помочь мне это исправить, заранее спасибо.


Подробнее здесь: https://stackoverflow.com/questions/792 ... onse-using
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»