У меня есть вложенный тип в моей схеме GraphQL с использованием консоли AWS AppSync.Например: в функции пользователь должен ввести идентификатор и опционально lang.Этот язык следует использовать для идентификации субтитров.Однако после настройки моей схемы и распознавателя, как показано ниже: каждый раз, когда я запускаю запрос, он возвращает результат со всеми langs (когда он должен только возвращать идентификатор и lang, указанные пользователем).Я не уверен, почему, когда я разделяю функцию, а она не является вложенной, эта же схема и распознаватель работают.пожалуйста помоги!!!(Я использую Elastic Search)
type Query {
getVideo(ID: String, lang: String): [video]
}
type video {
mainId: ID
title: String
subtitles: [subtitles]
}
type subtitles {
childId: ID
lang: String
caption: Boolean
}
Этот распознаватель моего запроса - , прикрепленный к video.subtitles - ниже (шаблон сопоставления ответов является стандартным при генерациисписок для ES):
{
"version": "2018-02-28",
"operation": "GET",
"path":"/lang/lang/_search",
#if(!$context.arguments.lang)
"params": {}
#else
"params": {
"body": {
"from": 0,
"size": 50,
"query": {
"bool": {
"must": [
{"match" : {"lang.keyword" : "${context.args.lang}" }}
]
}
}
}
}
#end
}
Это запрос, который я выполняю.Я хочу только результаты, которые соответствуют идентификатору и указанному lang:
query vid(ID: "1234", lang: "eng") {
subtitles {
lang
caption
}
}
Теперь результат следующий: обратите внимание, как он возвращает ВСЕ langs вместо только eng.Я не уверен, почему это , пожалуйста, помогите!
{
"data":
"getVideo": [
"subtitles" : [
{
"lang": "dutch",
"caption": "false"
},
{
"lang": "eng",
"caption": "true"
},
{
"lang": "span",
"caption": "true",
}
]
]
}