2016-08-03 26 views
0

我很新的GraphQL,並在我的根查詢我有兩個領域是非常相似,除了他們的「類型」屬性,我想合併。GraphQL根查詢:相同的架構,不同的類型

allPosts返回一個post對象數組,而post返回一個帖子。

每個字段是使用相同的模式,並且基於傳入的參數的那些各自的領域內被確定的裝載機/資源。

const RootQuery = new graphql.GraphQLObjectType({ 
    name: 'Query', 
    description: 'Root Query', 
    fields: { 
     allPosts: { 
      type: new graphql.GraphQLList(postType), 
      args: { 
       categoryName: { 
        type: graphql.GraphQLString 
       } 
      }, 
      resolve: (root, args) => resolver(args) 
     }, 
     post: { 
      type: postType, 
      args: { 
       slug: { 
        type: graphql.GraphQLString 
       } 
      }, 
      resolve: (root, args) => resolver(args) 
     }, 
}); 

是否有可能這兩個字段合併爲一個,並且具有由傳入的參數或其他變量確定的類型?

+0

你是什麼意思「每個領域使用相同的模式」?爲什麼你想在這兩個領域有不同的目的時把這兩個領域結合起來? –

回答

2

不,你不能!

將字段定義爲GraphQLList後,您將始終獲得一個數組。您不可能突然收到object而不是array of。 當您將字段定義爲GraphQLObjectType(或任何其他標量類型)並且希望獲得數組作爲結果時,也適用於其他情況。

這兩個領域有着真正不同的目的。

無論如何,您總是可以爲您的allPosts字段添加限制邏輯,並將結果限制爲1。但是,儘管如此,你總是隻有一個職位

相關問題