GraphQL Apollo Server,如何使字段将空字符串注册为 null

GraphQL Apollo Server, how to make a field register an empty string as null

我有一个可为 null 的字段 'language',它实际上永远不会为 null。它要么是语言环境代码,要么是空字符串“”。这会导致我的客户端出现问题,该客户端需要区域设置代码或根本没有。

虽然我可以在我的客户端中发现这个问题,或者在我的数据库中阻止这个问题,但我更愿意在我的 GQL 服务器中处理这个问题。

我能想到的一个解决方案是检查我在数据源中收到的数据,并在必要时进行修改。但是我担心这可能会损害性能,因为这是一个非常关键的查询,我不想每次有人访问我网站上的任何页面时都使用此检查。

您将为相关字段提供自定义解析器:

const resolvers = {
  SomeType: {
    language (parent) => {
      return parent.language || null
    }
  }
}

Custom scalars and enums可以用来做一些定制,f.e。验证或自动更正将提供的数据("" 转换为 null)。

Keystone.JS 有一个很好的挂钩系统。