В: Как мне разобрать и набрать ответ сервера общим образом c, когда один из родительских ключей в ответе будет постоянно меняться?
В качестве предисловия: я все еще новичок в TS и анализ ответов сервера - так что, возможно, это очевидно - но через день я не нашел хорошего решения.
Справочная информация: я использую Typescript и AWS Amplify. У меня есть мутация graphql под названием CreateGroup. Требуется ввод сгенерированного кода типа CreateGroupInput, определенного следующим образом:
export type CreateGroupInput = {
id?: string | null,
name: string,
createdAt?: string | null,
updatedAt?: string | null,
};
//I'm using this as input to create a new db entry
const groupInfo: CreateGroupInput = {
name: "new group",
createdAt: time,
updatedAt: time
};
Я хочу проанализировать и ввести результат мутации, чтобы получить доступ к идентификатору, который создается во время процесса мутации. ИДЕАЛЬНО это то, что я хотел бы сделать:
const data = API.graphql(graphqlOperation(mutations.createGroup, {input: groupInfo}) as CreateGroupInput;
и иметь переменную данных типа CreateGroupInput с ответом сервера все в правильном месте. Однако результат, который я получаю, не очень хорошо разбирается, потому что структура немного другая:
{
"data": {
"createGroup": {
"id": "1d720f68-56bd-46a9-82ef-e060a5b07177",
"name": "new group",
"createdAt": "1580278766358",
"updatedAt": "1580278766358"
}
}
}
Я пытался создать разные комбинации JSON .Parse и JSON .stringify - но ни одна из них работать и, честно говоря, я чувствую, что я делаю что-то действительно неправильно. Эта функция в конечном итоге будет обрабатывать много разных мутаций - и я ожидаю, что имя «createGroup» в ответе изменится для каждого из них - поэтому я не могу просто проанализировать «result.data.createGroup».
Что приводит меня к публикации этого вопроса. Как выполнить синтаксический анализ и ввести ответ сервера в общем виде c, когда ключ «createGroup» в ответе будет постоянно меняться?