Заранее спасибо, поскольку это, вероятно, вопрос 101 - я нигде не могу найти ответ.
Я настроил простой пример AppSync и DynamoDB.
В DynamoDB у меня есть таблица categorys
с элементами вида
{
slug: String!,
nm: String,
nmTrail: String,
...
}
Итак - нет id
поля. slug
является основным ключом раздела, не нулевым и должен быть уникальным (уникальным в данных, которые я загружал до сих пор).
Я настроил упрощенную схему AppSync в соответствии с приведенным выше определением и
распознаватель ...
{
"version": "2017-02-28",
"operation" : "GetItem",
"key" : {
"slug" : { "S" : "${context.arguments.slug}" }
}
}
Запрос, такой как
query GoGetOne {
getCategory(slug: "Wine") {
nm
}
}
Работает нормально - возвращает значение nm
для правильного элемента в categorys
- аналогично, я могу добавить любые другие свойства в categorys
, чтобы вернуть их (например, nmTrail), кроме slug
.
Если я добавлю slug
(первичный ключ раздела, необнуляемая строка) в набор результатов, тогда я получу DynamoDB:AmazonDynamoDBException
из the provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException
.
Если я сканирую / запрашиваю / фильтрую таблицу в DynamoDB, все в порядке.
Большинство примеров AWS используют поле id: ID!
в примерах 'get one' и также запрашивают его как возвращаемый элемент.
update1 в ответ на запрос KDs
Моя схема обновления мутаций:
type Mutation {
putCategory(
slug: String!,
nm: String,
nmTrail: String,
mainCategorySlug: String,
mainCategoryNm: String,
parentCategorySlug: String,
parentCategoryNm: String
): Category
}
Нет связывателя, связанного с этим и (очевидно), поэтому еще не использовал мутацию для put
чего-либо еще - просто пытался get
пакетно загружать данные для начала.
/ update1
Чего мне не хватает?