Graphql java spring boot -- 标量类型错误 -- 命名的“XXX”标量类型没有标量实现

Bug*_*ker 9 java spring-boot graphql

我想制作标量类型它会报告错误即使我使用扩展标量,它也根本不起作用。

  • 版本:

弹簧启动:2.7.0

    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-spring-boot-starter</artifactId>
        <version>12.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-java-tools</artifactId>
        <version>12.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphiql-spring-boot-starter</artifactId>
        <version>5.0.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)
  • 代码
    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-spring-boot-starter</artifactId>
        <version>12.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-java-tools</artifactId>
        <version>12.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphiql-spring-boot-starter</artifactId>
        <version>5.0.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)
Caused by: SchemaProblem{errors=[There is no scalar implementation for the named  'Long' scalar type]}
Run Code Online (Sandbox Code Playgroud)
  • 模式结构(非常简单的)
scalar Long

type Mutation {

}
Run Code Online (Sandbox Code Playgroud)
  • yml配置

在此输入图像描述 在此输入图像描述 那么我丢失了什么配置?

小智 7

用这个 :

@Bean 
public RuntimeWiringConfigurer runtimeWiringConfigurer() { 
   return wiringBuilder -> wiringBuilder.scalar(ExtendedScalars.GraphQLLong); 
}
Run Code Online (Sandbox Code Playgroud)

代替 :

@Bean
public GraphQLScalarType graphQLLong() {
   return ExtendedScalars.GraphQLLong;
}
Run Code Online (Sandbox Code Playgroud)


Bog*_*kyi 4

包括graphql-java-extended-scalars依赖项:

https://github.com/graphql-java/graphql-java-extended-scalars

并确保在你的@Configuration课堂上你正在使用:

@Bean
public graphql.schema.GraphQLScalarType extendedScalarLong() {
    return graphql.scalars.ExtendedScalars.GraphQLLong;
}
Run Code Online (Sandbox Code Playgroud)

另外,如果您将 ExtendedScalar 定义为 a @Bean,则无需在graphql.extended-scalars属性中指定它。