【问题标题】:Use interfaces to build graphql query使用接口构建 graphql 查询
【发布时间】:2020-06-07 21:08:06
【问题描述】:

是否可以使用现有接口构建 graphql 查询? 或者我们应该写两次相同的代码)

例如in the doc we have

interface Post {
  id: string;
  title: string;
  ...

然后在查询中写入相同的字段

query allPosts {
      posts {
        id
        title
        ...

有没有办法写出类似的东西

query allPosts {
      posts: Post[]

【问题讨论】:

    标签: angular graphql apollo apollo-angular


    【解决方案1】:

    不可能做这样的事情,因为 TypeScript 类型在运行时不存在。接口也不足以表示 GraphQL 字段,因为它们无法捕获参数值或指令用法等信息。

    但是,您可以从现有查询中自动生成 TypeScript 类型,这是通常所做的。见GraphQL Code Generator

    【讨论】:

      【解决方案2】:

      NO ... types!=queries ... posts: Post[] 已在响应定义中使用

      Query 定义了你需要从这个(和其他)类型(-s)中得到什么子集(字段),f.e.只有标题

      您可能正在寻找Fragments

      【讨论】:

      • 为什么我不能从类型中进行查询?字段是相同的片段不是我要找的
      • 在第二条评论中得到答案)
      猜你喜欢
      • 2020-08-27
      • 2020-01-21
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2022-08-02
      • 2018-11-12
      相关资源
      最近更新 更多