У меня есть API Appsync, сгенерированный Amplify из базовой схемы. В модели Article
поле category
вложено в поле metadata
. Я хочу построить запрос, который предоставляет список статей, отфильтрованных по категориям. Мне не понятно, как фильтровать вложенное значение ... Я видел похожих вопросов , но аналогичный ответ не сработал.
Схема преобразования AWS GraphQL
type Article @model {
id: ID!
title: String!
description: String!
text: String!
metadata: ArticleMetadata!
}
type ArticleMetadata {
category: Category!
lastModified: String!
creationDate: String!
}
enum Category {
javascript
java
ruby
python
haskell
}
Запрос сгенерированного списка
export const listArticles = `query ListArticles(
$filter: ModelArticleFilterInput
$limit: Int
$nextToken: String
) {
listArticles(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
title
description
text
metadata {
category
lastModified
creationDate
}
}
nextToken
}
}
`;
Сбой запроса фильтра
query listArticlesByCategory($category: String!) {
listArticles(filter: {category: {eq: $category}}) {
items {
title
description
text
metadata {
category
creationDate
lastModified
}
}
}
}
Ошибка консоли Appsync гласит, что category
в filter: {category: ... }
является неизвестным полем.