当前位置: 首页 > 知识库问答 >
问题:

了解GraphQL/Sangria-Graphql中服务器端的指定字段

杨赞
2023-03-14

当客户机发送请求时,我想知道客户机请求的数据字段是什么。例如

{
  user {
    name
    address
  }
}

在上面的请求中,客户端请求了用户的name字段和地址字段。在执行查询时,我如何知道/获得桑格利亚酒-graql服务器中的这些指定字段,即名称和地址?

共有1个答案

轩辕嘉平
2023-03-14

您必须在resolve()中使用4th参数

resolve: (obj, args, auth, fieldASTs) => {
    /* all your fields are present in selections
       please check the fieldASTs JSON path it may vary if you are using relay
                                                                connections */
  const requiredFields = fieldASTs.fieldNodes[0].selectionSet.selections.map(
      (set) => set.name.value
   );
  // requiredFields will contain the name and address
}
/* fieldASTs contains fieldNames, fieldNodes and every details about your Schema 
 you can get your specified fields inside fieldNodes like */

 类似资料:
  • 我正在查看用Scala编写GraphQL服务器的Sangria库。但奇怪的是,同一个类型系统必须实现两次:(1)作为GraphQL类型声明的一部分,(2)也是在服务器端,作为Scala case类,附带ObjectType、InterfaceType等。 在Scala中硬编码类型系统尤其令人厌烦,因为我的目的是能够CRUD任意形状的聚合,其中每个形状都被定义为类型的GraphQL集合。例如,假设S

  • 我是Spring Boot的新手,我刚刚开始使用graph ql-spqr进行Spring Boot,因为它允许Java项目轻松无融资创业。 但是,根据我的理解,GraphQL基本上允许从数据库中获取选定的字段。根据示例,我已经看到,graph ql-spqr库中的这种类型的选择发生在客户端。有没有办法同时进行客户端和服务器端的选择以加快查询速度? 我已经研究了GraphQL的EntityGrap

  • 我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作

  • 如何为GraphQL编写单元测试?我正在使用apollo服务器、graphql-tester和graphql。

  • 目前,我正在从这里学习sangria-graphql。然而,我找不到任何关于突变(添加,更新,删除)的文档。还有,谷歌也不会帮我多少。你们能给我提供什么好的资源吗?

  • 我想知道每种方法的利弊是什么。例如,在graphQL中包含所有内容似乎有点多余,因为我们将在每个服务中复制模式的部分。另一方面,我们使用GraphQL来避免一些REST缺陷。我们担心拥有RESTendpoint会抵消从GQL获得的优势。 有人遇到过类似的困境吗?我们都没有使用GraphQL的经验,所以这里是否有一些明显的利弊我们可能会遗漏? 提前道谢!