将 kickstart 框架与 spring 一起使用时,Java 枚举如何正确注册到 GraphQL?
在尝试在简单的 Java Spring 应用程序中使用具有等效 Java 枚举的 GraphQL 模式枚举时,会引发以下异常:
Caused by: graphql.kickstart.tools.SchemaError: Expected enum with name 'CarType' but found none!
at graphql.kickstart.tools.SchemaParser.createEnumObject(SchemaParser.kt:191)
at graphql.kickstart.tools.SchemaParser.parseSchemaObjects(SchemaParser.kt:85)
at graphql.kickstart.tools.SchemaParser.makeExecutableSchema(SchemaParser.kt:112)
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration.graphQLSchema(GraphQLJavaToolsAutoConfiguration.java:147)
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration$$EnhancerBySpringCGLIB$$1b4eddf2.CGLIB$graphQLSchema$1(<generated>)
Java端枚举类是如何注册的?我已经看到了带有 RuntimeWiring 的示例并通过它注册它们,但是模式创建是为我的使用自动完成的,所以我找不到实现此目的的方法(或正确的钩子)。
GraphQL 架构是:
extend type Query {
cars : [Car]
}
type Car {
type : CarType
}
enum CarType {
AUDI,
BMW,
VOLKSWAGEN
}
Java 枚举:
public enum CarType {
AUDI, BMW, VOLKSWAGEN
}