首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >graphql-java SPQR:如何使用@GraphQLUnion注解?

graphql-java SPQR:如何使用@GraphQLUnion注解?
EN

Stack Overflow用户
提问于 2021-02-26 04:00:47
回答 1查看 257关注 0票数 0

我继承了一个使用Java语言中的GraphQL和Grapqhl-SPQR spring boot starter包(v0.0.3)的项目。它使用注释来自动生成GraphQL SDL,但我需要改进错误处理。根据我在网上找到的内容,我需要实现不同类型的联合,以便用户可以同时查询多个类型。几乎所有的在线指南都讨论了SDL中的这种实现。我正在尝试找出如何使用GraphQL SPQR做到这一点。

所以如果我有一个类型

代码语言:javascript
复制
type User {
  id: ID!
  name: String
}

和另一种类型

代码语言:javascript
复制
type UserError {
  message: String
}

然后,我可以在SDL中使用union UserResult = User | UserError创建并集,以便进行查询。

代码语言:javascript
复制
userResult(id: 1) {
  ... on User {
    id
    name
  }
  ... on UserError {
    message
}

如何在Graphql-SPQR中创建联合?我知道有一个@GraphQLUnion注释,但我找不到它实现的任何工作示例。有没有人有例子,或者能给我指个例子?

EN

回答 1

Stack Overflow用户

发布于 2021-04-13 12:56:42

代码语言:javascript
复制
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;}

你可以在这里找到示例src/test/java/io/leangen/graphql/UnionTest.java

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66375678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档