小编use*_*677的帖子

如何在Sangria GraphQL中的对象的解析器中了解请求的字段

我正在通过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)

scala graphql sangria

5
推荐指数
1
解决办法
726
查看次数

标签 统计

graphql ×1

sangria ×1

scala ×1