我正在通过Sangria GraphQL(“ org.sangria-graphql” %%“ sangria”%“ 1.0.0-RC5”)构建GrapQL服务器
我不确定通常是否需要它。但是为了提高性能,我想在解决过程中从客户端获取请求的字段。
例如,
如果您要求,
query Query{
FooObject{
fieldA
fieldB
}
}
Run Code Online (Sandbox Code Playgroud)
您的服务器可能会在FooObject对象解析器中解析
resolve = Ctx => DB.session
.query("select fieldA, fieldB, FieldC, FieldD from DATA_TABLE")
.map(entity => DataObject(entity.fieldA, entity.fieldB) // By ORM Mapper
)
Run Code Online (Sandbox Code Playgroud)
然后,
对象字段可以在FooObject对象的字段解析器中解析
Field("fieldA", type..., resolve = _.fieldA )
Field("fieldB", type..., resolve = _.fieldB )
Field("fieldC", type..., resolve = _.fieldC )
Field("fieldD", type..., resolve = _.fieldD )
Run Code Online (Sandbox Code Playgroud)
然后,您可能会得到graphql结果
{
data:{
FooObject:{
FieldA: "DataA"
FieldB: "DataB"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想做的是,在对象解析器解析期间,给出如下所示的字段提示。
resolve = Ctx => …Run Code Online (Sandbox Code Playgroud)