嵌入ID上的GraphQL筛选

嵌入ID上的GraphQL筛选,graphql,Graphql,我有一个需要使用的自定义模式,这里有一个略为简化的版本: schema { query: Query } type Query { environment(locale: LocaleEnum!): Environment } type Environment { articles( offset: Int = 0 limit: Int = 20 ): ArticleConnection! } type ArticleConnection { total

我有一个需要使用的自定义模式,这里有一个略为简化的版本:

schema {
  query: Query
}

type Query {
  environment(locale: LocaleEnum!): Environment
}

type Environment {
  articles(
    offset: Int = 0
    limit: Int = 20
  ): ArticleConnection!
}

type ArticleConnection {
  total: Int!
  items: [Article!]
}

type Article {
  id: ID!
  title: String!
}
我可以通过运行

query {
  environment(locale: EN) {
    articles {
      total,
      items {
        id
      }
    }
  }
}

是否可以根据商品id进行筛选?比如,我只想要一篇具体的文章。

客户端可以通过以下三种方式之一操纵GraphQL服务响应的“形状”:

  • 通过提供不同的字段(即选择不同的字段进行查询)
  • 通过利用,允许在运行时根据字段的实际类型将特定选择集应用于字段
  • 通过使用
    @skip
    @include
    从选择集中明确排除或包括单个字段
除此之外,GraphQL不提供任何用于过滤、排序、分页或响应的其他任意转换的内置机制。这些特性是特定于服务的,必须作为模式的一部分实现,模式代表服务的集体能力

例如,您可以在
环境中添加另一个字段,如:

type Environment {
  article(
    id: ID!
  ): Article
}

如果您正在开发一个使用现有模式的客户机,那么如果该模式不公开您所需的功能,您将无能为力。

您的模式决定了什么是可能的,什么是不可能的,因此您在这里提出的问题并不十分清楚。您是在问是否可以使用现有模式来实现这一点,还是在问如何将该功能添加到您的模式中?我是在问是否可以使用现有模式。今天之前我从未使用过GraphQL。是否有可以针对已定义数据编写筛选器的功能?