Запрос Graphql Mutation для таблицы DynamoDB с атрибутом Custom Type

Нужна помощь в Graphql Appsync

Пользовательский тип Appsync:

type Employee {
        id: ID!
        name: String
        experiences: [Experiences]
        projects: [Projects]
}

Dynamo DB table Employee

Table: Employee
{
    id:’’,
    name:’’,
    experience:[
        {
            company:’’,
            from:’’,
            till:’’
        },
        {
            company:’’,
            from:’’,
            till:’’
        }
    ],
    projects:[

        {
            title:’’,
            date:’’

        },
        {
            title:’’,
            date:’’

         },
    ]

}

Нам нужно обновить опыт и проекты в двух разных запросах на мутацию, но обновление должно выполняться в одной таблице Dynamodb. Вот мои сомнения:

  • Необходимо создать отдельную таблицу Dynamodb для проектов и опыта. Как написать запросы на мутацию для этой таблицы, обновляющей проекты и опыт мутации diff?

person Ankur Kumar    schedule 16.09.2018    source источник


Ответы (1)


позвольте мне попытаться ответить на ваши вопросы:

Нам нужно обновить опыт и проекты в двух разных запросах на мутацию, но обновление должно выполняться в одной таблице Dynamodb.

Вы можете создать один источник данных в AppSync и иметь 2 мутации, которые разрешаются в отношении этого источника данных. Таким образом, ваши мутации принимают массив типов Experience или Project, и ваш преобразователь позаботится о записи в этот источник данных DynamoDB.

Необходимо создать отдельную таблицу Dynamodb для проектов и опыта.

Это действительно зависит от вашего варианта использования. Наличие отдельных таблиц DynamoDB помогает извлекать связанные типы [1: N] с помощью вторичных индексов. Отдельные таблицы также помогают разбивать на страницы связанные типы вместо получения всех зависимостей за один вызов. Если вы в конечном итоге используете одну таблицу для хранения сотрудников / проектов / опыта, обратитесь к Списки и типы карт в преобразователе DynamoDB.

Как написать запросы на мутацию для этой таблицы, обновляющей проекты и опыт мутации diff?

Как я уже упоминал, вы должны просто определить в своей схеме 2 мутации, которые принимают список типов. В преобразователе вы должны писать в соответствующие таблицы. См. следующая документация по резольверам DynamoDB в AppSync.

Кроме того, вы также можете использовать DynamoDB Batch Resolver для записи данных в несколько таблиц.

person Shankar Raju    schedule 17.09.2018