Как получить сгенерированный файл схемы.graphqls, используя SPQR?
Мне очень нравится, как SPQR позволяет легко интегрировать graphql с существующей системой, единственное, что я хотел бы увидеть, это .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
}
2 ответа
Это не совсем зависит от SPQR. Все необходимые классы предоставляются самим graphql-java:
new SchemaPrinter().print(schema);
Чтобы получить более подробный вывод (со скалярами, типами самоанализа и т. Д.), Предоставьте опции для принтера:
new SchemaPrinter(
// Tweak the options accordingly
SchemaPrinter.Options.defaultOptions()
.includeScalarTypes(true)
.includeExtendedScalarTypes(true)
.includeIntrospectionTypes(true)
.includeSchemaDefintion(true)
).print(schema);
Добавление
graphql.spqr.gui.enabled=true
в свойствах приложения позволяет
gui(playground)
. Схему и документацию можно изучить и загрузить из графического интерфейса.