Java 如何使用Kickstart-Spring-Boot-GraphQL从逻辑上拆分我的GraphQL模式和解析器
目前,我所有的查询解析程序都在一个查询类和一个查询架构/类型下,如下所示:Java 如何使用Kickstart-Spring-Boot-GraphQL从逻辑上拆分我的GraphQL模式和解析器,java,spring-boot,graphql,graphql-java,Java,Spring Boot,Graphql,Graphql Java,目前,我所有的查询解析程序都在一个查询类和一个查询架构/类型下,如下所示: schema { query: Query #I'd prefer UserQueries and OrganisationQueries mutation: UserMutations mutation: OrganisationMutations } type Query { fetchUser(email: String): User listOrganisations(m
schema {
query: Query #I'd prefer UserQueries and OrganisationQueries
mutation: UserMutations
mutation: OrganisationMutations
}
type Query {
fetchUser(email: String): User
listOrganisations(max: Int): [GenericListing]
}
...
以及我在一个类中的所有查询:
@组件
公共类查询实现GraphQLQueryResolver{
公共列表组织(最大整数){
...
}
公共用户fetchUser(字符串电子邮件){
...
}
}
我已经成功地将我的突变按用户和组织进行了拆分和逻辑分离
@组件
公共类UserMutations实现GraphQLMutationResolver{
公共用户createUser(字符串firstname、字符串lastname、字符串email、字符串msisdn、字符串密码){
...
}
}
如何在逻辑上分离查询?或者至少不将所有查询都包含在查询类中。如果要完全分离与用户相关的查询和与组织相关的查询,请执行以下操作:
@组件
公共类UserQuery实现GraphQLQueryResolver{
公共用户fetchUser(字符串电子邮件){
...
}
}
@组件
公共类OrganizationQuery实现GraphQLQueryResolver{
公共列表组织(最大整数){
...
}
}
此外,还可以使用graphql java codegen插件根据模式自动生成接口和数据类。顺便说一下,它支持多个架构文件:
- Gradle插件:
- Maven插件:
schema {
query: Query
mutation: Mutation
}
type Query {
fetchUser(email: String): User
}
...
schema {
query: Query
mutation: Mutation
}
type Query {
listOrganizations(max: Int): [GenericListing]
}
...