映射数据
GraphQL将数据映射到相应类型上
GraphQL的核心思想,就是声明一种类型schema,并将它映射到运行时产生的数据上。
设计这些类型时,要充分考虑到类型与相应数据的映射方式。
例如,假设我们有如下类型:
type Query {
products(match : String) : [Product] # a list of products
}
type Product {
id : ID
name : String
description : String
cost : Float
tax : Float
}
可以在这个简单的schema上执行一些简单的查询:
query ProductQuery {
products(match : "Paper*")
{
id, name, cost, tax
}
}
然后,在Java代码中需要为Query.products字段绑定DataFetcher,以通过传入的参数获取product列表。
假设我们有三个下游服务: 一个获取产品信息,一个获取产品成本信息,一个获取产品税信息。
GraphQL - Java会在运行时调用dataFetcher获取对象的数据,并将其映射为schema中定义的类型。
在这个场景下,主要问题是:如何将三种不同来源的数据汇集为一个单一的类型数据。
一种方式是,在cost和tax字段上添加dataFe