数组中类型为 graphql 对象的 GraphQL 字段
Posted
技术标签:
【中文标题】数组中类型为 graphql 对象的 GraphQL 字段【英文标题】:GraphQL field of type graphql object within an array 【发布时间】:2018-08-15 02:04:30 【问题描述】:我在这里定义了一个 graphQL 对象:
const graphql = require('graphql');
const GraphQLObjectType = require('graphql');
const ProductType = new GraphQLObjectType(
name: 'Product',
description: 'Product GraphQL Object Schemal Model',
fields:
productId: type: graphql.GraphQLString ,
SKU: type: graphql.GraphQLString ,
quantity: type: graphql.GraphQLFloat ,
unitaryPrice: type: graphql.GraphQLFloat ,
subTotal: type: graphql.GraphQLFloat ,
discount: type: graphql.GraphQLFloat ,
totalBeforeTax: type: graphql.GraphQLFloat ,
isTaxAplicable: type: graphql.GraphQLBoolean ,
unitaryTax: type: graphql.GraphQLFloat ,
totalTax: type: graphql.GraphQLFloat
);
module.exports.ProductType = ProductType ;
然后,我想在另一个 GraphQL 对象中使用此 ProductType,但我需要该对象是一个数组结构,如下所示:
const graphql = require('graphql');
const GraphQLObjectType = require('graphql');
const ProductType = require('./product');
const ShoppingCartType = new GraphQLObjectType(
name: 'ShoppingCart',
description: 'Shopping Cart GraphQL Object Schema Model',
fields:
cartId: type: graphql.GraphQLString ,
userId: type: graphql.GraphQLString ,
products: [ type: ProductType ]
);
module.exports.ShoppingCartType = ShoppingCartType ;
这可能吗?
【问题讨论】:
【参考方案1】:您需要使用 GraphQLList 包装器来包装现有类型,如下所示:
products: type: new GraphQLList(ProductType)
【讨论】:
以上是关于数组中类型为 graphql 对象的 GraphQL 字段的主要内容,如果未能解决你的问题,请参考以下文章
Apollo GraphQL:用于查询返回不同类型对象的模式?
我们如何从 GraphQL 的 RequestContextHolder 获取 GraphQL 的 HttpServletRequest(DefaultGlobalContext)(使用 graphq