问题
I really like the way SPQR makes easy to integrate graphql with an existing system, the only thing I'd like to see is the .graphqls
file so I can learn more on GraphQL Syntax.
Is there a way to generate the scheme file from an existing code with SPQR annotations integrated?
To provide some code let's use the same code from the GitHub site
Entity:
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;
}
}
Service class:
class UserService {
@GraphQLQuery(name = "user")
public User getById(@GraphQLArgument(name = "id") Integer id) {
...
}
}
Expected Output:
type User {
id: Int!
name: String!
registrationDate: String
}
Query{
user(Int):User
}
回答1:
This is not really SPQR specific. All the needed classes are provided by graphql-java itself:
new SchemaPrinter().print(schema);
To get a more detailed output (with scalars, introspection types etc), provide the options to the printer:
new SchemaPrinter(
// Tweak the options accordingly
SchemaPrinter.Options.defaultOptions()
.includeScalarTypes(true)
.includeExtendedScalarTypes(true)
.includeIntrospectionTypes(true)
.includeSchemaDefintion(true)
).print(schema);
来源:https://stackoverflow.com/questions/52086525/how-to-get-the-generated-scheme-file-graphqls-using-spqr