首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Graphql中实现自定义标量?

如何在Graphql中实现自定义标量?
EN

Stack Overflow用户
提问于 2018-06-26 08:16:46
回答 1查看 4.4K关注 0票数 6

我是图形学的新手。我正在尝试实现自定义标量类型“电子邮件”。但是越来越少了。你能帮帮我吗?

by: com.coxautodev.graphql.tools.SchemaClassScannerError:期望用户定义的GraphQL标量类型带有名称“Email”,但没有找到!在com.coxautodev.graphql.tools.SchemaClassScanner.validateAndCreateResult(SchemaClassScanner.kt:144) ~graphql-java-tools-4.3.0.jar:na at com.coxautodev.graphql.tools.SchemaClassScanner.scanForClasses(SchemaClassScanner.kt:94) ~graphql tools-4.3.0.jar:na

组合:

代码语言:javascript
复制
scalar Email

type Greeting {
  id: ID!
  message: String!
  email:Email
}

type Query {
  getGreeting(id: ID!): Greeting
}

type Mutation {
  newGreeting(message: String!): Greeting!
}

版本信息:

代码语言:javascript
复制
springBootVersion = '1.5.8.RELEASE'

com.graphql-java:graphql-java:6.0')

com.graphql-java:graphql-java-tools:4.3.0')

com.graphql-java:graphql-java-servlet:4.7.0')

org.springframework.boot:spring-boot-starter-web')

com.graphql-java:graphql-spring-boot-starter:3.10.0')

com.graphql-java:graphiql-spring-boot-starter:3.10.0')      

请帮帮我..。

EN

回答 1

Stack Overflow用户

发布于 2018-12-18 00:58:10

试试这个:

代码语言:javascript
复制
@Component
public class ScalarEMail extends GraphQLScalarType {
    public ScalarEMail() {
        super("Email", "Scalar Email", new Coercing() {
            @Override
            public Object serialize(Object o) throws CoercingSerializeException {
                return ((Email) o).getEmail();
            }

            @Override
            public Object parseValue(Object o) throws CoercingParseValueException {
                return serialize(o);
            }

            @Override
            public Object parseLiteral(Object o) throws CoercingParseLiteralException {
                return Email.valueOf(((StringValue) o).getValue());
            }
        });
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51038079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档