我继承了一个使用Java语言中的GraphQL和Grapqhl-SPQR spring boot starter包(v0.0.3)的项目。它使用注释来自动生成GraphQL SDL,但我需要改进错误处理。根据我在网上找到的内容,我需要实现不同类型的联合,以便用户可以同时查询多个类型。几乎所有的在线指南都讨论了SDL中的这种实现。我正在尝试找出如何使用GraphQL SPQR做到这一点。
所以如果我有一个类型
type User {
id: ID!
name: String
}和另一种类型
type UserError {
message: String
}然后,我可以在SDL中使用union UserResult = User | UserError创建并集,以便进行查询。
userResult(id: 1) {
... on User {
id
name
}
... on UserError {
message
}如何在Graphql-SPQR中创建联合?我知道有一个@GraphQLUnion注释,但我找不到它实现的任何工作示例。有没有人有例子,或者能给我指个例子?
发布于 2021-04-13 12:56:42
ExplicitUnionInterfaceService unionService = new ExplicitUnionInterfaceService();
GraphQLSchema schema = new TestSchemaGenerator()
.withOperationsFromSingleton(unionService)
.generate();
__________________________________________________________________________________
private static class ExplicitUnionInterfaceService {
@GraphQLQuery
public UserInterface userResult(@GraphQLArgument(name = "id") int id) {
// Not implemented
return null;
}
}
@GraphQLUnion(name = "userResult", description = "This union of User and UserError class", possibleTypes = {User.class, UserError.class})
public interface UserInterface {}
public static class User implements UserInterface {public String id; public String name;}
public static class UserError implements UserInterface {public String message;}https://stackoverflow.com/questions/66375678
复制相似问题