Как реализовать Custom Scalar в Graphql-Java? - PullRequest
0 голосов
/ 26 июня 2018

Я новичок в graphql. Я пытаюсь реализовать пользовательский скалярный тип "Электронная почта". но получаю ошибку ниже. Не могли бы вы помочь мне?

от: com.coxautodev.graphql.tools.SchemaClassScannerError: Ожидается пользовательский скалярный тип GraphQL с именем «Email», но не найденный! в com.coxautodev.graphql.tools.SchemaClassScanner.validateAndCreateResult (SchemaClassScanner.kt: 144) ~ [graphql-java-tools-4.3.0.jar: na] в com.coxautodev.graphql.tools.SchemaClassScanner.scanForClasses (SchemaClassScanner.kt: 94) ~ [graphql-Java-инструменты-4.3.0.jar: на]

Конфигурации:

scalar Email

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

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

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

Информация о версии:

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')      

Пожалуйста, помогите ...

1 Ответ

0 голосов
/ 18 декабря 2018

Попробуйте это:

@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());
            }
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...