在 GraphQL 中使用 Enum 类型定义枚举值

阅读时长 3 分钟读完

在使用 GraphQL 进行开发的过程中,枚举类型经常用来定义某一特定字段的取值。使用枚举类型能够保证字段取值的正确性和规范性,避免了随意的取值带来的问题。而在 GraphQL 中,使用 Enum 类型来定义枚举值尤其方便。

Enum 类型介绍

Enum 类型是一种 GraphQL 类型,表示一组特定的静态类型,通常用于某一字段的取值范围限制。Enum 类型通过定义常量值来实现。

使用 Enum 类型定义枚举值

在 GraphQL 中,我们可以通过使用 enum 关键字来定义一个枚举类型:

在上面的定义中,我们定义了一个名为 Status 的枚举类型,该类型包含了三个取值:ACTIVEINACTIVEDELETED

当我们在 GraphQL 的 schema 中定义了一个字段,需要使用这个枚举类型作为该字段的类型时,我们可以简单地使用定义好的枚举类型的名称即可:

上面的 schema 定义了一个 User 类型,其中有一个 status 字段,它的类型是我们刚刚定义的 Status 类型。这样一来,我们就能够对 status 字段的取值进行限制,使得它只能取到我们规定的值。

在 GraphQL resolver 中使用 Enum 类型

当我们在 resolver 函数中处理一个枚举类型的值时,通常可以直接使用类型名称来访问该类型。

例如,当我们要处理上面定义的 User 类型中的 Status 字段时,我们可以这样使用:

-- -------------------- ---- -------
----- --------- - -
  ----- -
    ------- ------ -- -
      ------ ------------- -
        ---- ---------
          ------ -----
        ---- -----------
          ------ ------
        ---- ----------
          ------ ------
        --------
          ------ -------
      -
    -
  -
-

在上面的 resolver 函数中,我们使用了 Status 类型的名称来访问该类型。在函数中,我们使用了 switch 语句来根据枚举值进行不同的处理。

总结

在 GraphQL 中使用 Enum 类型来定义枚举值,可以帮助我们保证字段取值的正确性和规范性,避免了随意的取值带来的问题。使用 Enum 类型非常简单,只需要定义好枚举类型,并在 schema 定义中使用该类型即可。

同时,在 resolver 中使用枚举类型也非常方便,我们可以直接使用类型名称来访问枚举类型,并进行相应的处理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6488398248841e98946bc6c4

纠错
反馈