zl程序教程

您现在的位置是:首页 >  其他

当前栏目

GraphQL的query只返回所请求的字段的实现原理

原理 实现 请求 返回 Query GraphQL
2023-09-14 09:03:58 时间

首先定义一个Product类型的对象,拥有id,name,price等基本字段:

然后定义一个query,输入参数为id,返回的类型正是Product:

这个query的实现,我简单的给product的price字段生成一些随机数:

做个测试:

输入查询结构,我只请求了id和name字段:

query {
  product(id:"5") {
    id
    name
  }
}

而GraphQL也确实按照了我的期望,只返回id和name的值。GraphQL背后是如何实现这个逻辑的?

注意这个名为completeObjectValue的调用栈里的collectandExecuteSubfields方法:

解析出来,当前请求的字段为id和name:

在这个executeFields的方法里,根据请求的字段拼接最后的响应结构:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":