Я хочу изменить синтаксис graphql и процесс синтаксического анализа для своих собственных нужд.
Например, клиент может отправлять запросы с аргументами на основе пути:
type Foo {
name: String
anotherField: String
bar: Bar
}
type Bar {
name: String
anotherField: String
}
type Query {
foos(arg: String): [Foo]
}
#relevant part: bar.name
query {
foo(arg: bar.name) {
name
anotherField
}
}
Преимущество: например, фильтр для вложенных объектов не устанавливая их в запросе. Я знаю, что изменения в средствах разрешения необходимы, но сначала синтаксический анализатор (и лексер !?) должен принять «новый» синтаксис. В настоящее время эта концепция вызывает
GraphQLError: Unexpected character ".".
Любые идеи?
Я знаю, что некоторые библиотеки, такие как Prisma или Hasura, реализовали хорошие альтернативы фильтров, но мне нужно мое собственное решение.