Проблема GraphQL с наличием dataFetcher и typeResolver - PullRequest
0 голосов
/ 07 ноября 2019

В настоящее время я работаю над проектом Kotlin, Reactor, GraphQL, MongoDB.

Кажется, проблема в моей схеме построения graphql, но я не могу ее выяснить.

У меня есть интерфейс Foo

interface Foo {
    id: ID
    field1: String
    field2: String
} 

И у меня есть другой интерфейс Bar

interface Bar{
    id: ID
    field1: String
    field2: String

Оба являются интерфейсами, поэтому я разрешил их тип, добавив несколько строк на моем RuntimeWiring.

RuntimeWiring.newRuntimeWiring()

    /* Shortend for brevity */

    .type(newTypeWiring("Foo")
        .typeResolver(fooResolvers.fooTypeResolver())
        .dataFetcher("bar", barDataFetchers.getBar())
    .type(newTypeWiring("Bar")
        .typeResolver(barResolvers.barTypeResolver())
    ...
    .build()

Когда я отправляю запрос с просьбой о bar от Foo, он даже не достигает barDataFetchers.getBar().

Есть ли что-то, что я 'м отсутствует?

РЕДАКТИРОВАТЬ

После установки моего уровня регистрации graphql на DEBUG,

Я понял, что graphql-java использует graphql.schema.PropertyDataFetcher для извлечения данных для bar.

Это не то, что я хотел. Он должен использовать мой собственный dataFetcher, barDataFetchers

...