Как получить сгенерированный файл схемы .graphqls, используя SPQR? - PullRequest
0 голосов
/ 30 августа 2018

Мне очень нравится, как SPQR облегчает интеграцию с существующей системой, единственное, что я хотел бы увидеть, это файл .graphqls, чтобы я мог больше узнать о синтаксисе GraphQL.

Есть ли способ создать файл схемы из существующего кода с интегрированными аннотациями SPQR?

Чтобы предоставить некоторый код, давайте использовать тот же код с сайта GitHub

Организация:

public class User {

    private String name;
    private Integer id;
    private Date registrationDate;

    @GraphQLQuery(name = "name", description = "A person's name")
    public String getName() {
        return name;
    }

    @GraphQLQuery
    public Integer getId() {
        return id;
    }

    @GraphQLQuery(name = "regDate", description = "Date of registration")
    public Date getRegistrationDate() {
        return registrationDate;
    }
}

Класс обслуживания:

class UserService {

    @GraphQLQuery(name = "user")
    public User getById(@GraphQLArgument(name = "id") Integer id) {
      ...
    }
}

Ожидаемый результат:

type User {
    id: Int!
    name: String!
    registrationDate: String
}

Query{
 user(Int):User 
}

1 Ответ

0 голосов
/ 04 сентября 2018

Это не совсем зависит от SPQR. Все необходимые классы предоставляются самим графом-java:

new SchemaPrinter().print(schema);

Чтобы получить более подробный вывод (со скалярами, типами самоанализа и т. Д.), Предоставьте опции для принтера:

new SchemaPrinter(
                  // Tweak the options accordingly
                  SchemaPrinter.Options.defaultOptions()
                          .includeScalarTypes(true)
                          .includeExtendedScalarTypes(true)
                          .includeIntrospectionTypes(true)
                          .includeSchemaDefintion(true)
            ).print(schema);
...