0

这是我的 GraphQL 架构:

type Link {
  url: String!
  description: String!
}

type Query {
  allLinks: [Link]
  myLinks: [Link]
  link(url:String!):Link
}

type Mutation {
    createLink(url:String! , description:String!):Link
}

schema {
  query: Query
  mutation: Mutation
}

以下是用于 Query 、 Link 和 GraphQLRootResolver 的 Java Pojo:

public class Link {
    private final String url;
    private final String description;

    public Link(String url, String description) {
        this.url = url;
        this.description = description;
    }

    public String getUrl() {
        return url;
    }

    public String getDescription() {
        return description;
    }
}

public class Query implements GraphQLRootResolver {
    private final LinkRepository linkRepository;

    public Query(LinkRepository linkRepository) {
        this.linkRepository = linkRepository;
    }

    public List<Link> allLinks() {
        return linkRepository.getAllLinks();
    }

    public List<Link> myLinks() {
        return linkRepository.getAllLinks();
    }

    public Link link(String url) {
        return linkRepository.getLink(url);
    }
}

这是 Resolver 的实现:

public List<Link> getAllLinks() {
    return links;
}

public void saveLink(Link link) {
    links.add(link);
}

public Link getLink(String str) {
    Link link = null;
    try {
        link = new Link(str, dashboardService.getDashboard(str));
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return link;
}

当我使用以下查询来获取基于特定 url 的数据时,我收到以下错误:

http://localhost:8000/graphql?query={link(url:%22d_comp1%22){url}}

我得到的错误:

{"data":{"link":null},"errors":[{"message":"Internal Server Error(s) while executing query"}]}

由于我是 GraphQL 新手,请帮我解决这个问题。

4

1 回答 1

0

我已经解决了这个问题,因为我用来获取数据的查询是错误的。正确的查询是:

query={link(url:"d_comp_1"){url,description}}
于 2017-12-12T08:45:18.657 回答