简介
GraphQL 是一种用于 API 的查询语言,它提供了一种用于描述数据并根据该数据构建查询的方式。GraphQL 很大程度上遵循了 RESTful API 的设计原则。GraphQL 可以帮助我们有效地查询所需数据,因为我们可以指定我们要的数据,并且可以很好地处理多个数据源的查询请求。GraphQL 的另一个重要特性是使用枚举类型枚举常用常数,本文将介绍 GraphQL 中的枚举类型。
GraphQL 中的枚举类型
GraphQL 支持枚举类型。枚举类型是一种特殊的 Scalar 类型,它枚举了一组可能的值,并且可以作为一个字段的类型。
在 GraphQL 的枚举类型中,我们可以定义一组可能的值。对于每个可能的值,我们可以在 Schema 中为其分配一个字符串值或数值,这个值被称为该枚举值的 value
,我们还可以为每个枚举值指定一个可读的标签,这个标签被称为该枚举值的 description
。GraphQL 支持在枚举类型中定义多个值。
下面是一个使用 GraphQL 枚举类型的示例:
-- -------------------- ---- ------- ---- -------- - --- ------ ---- - ---- ------------- - --- --- ------------ ------- --------- --------- -
在这个例子中,Severity
枚举类型已被定义,在这个类型中,定义了三个可能的值:LOW
,MEDIUM
和 HIGH
。然后,在 Vulnerability
类型中,我们使用 Severity
类型指定了一个名为 severity
的字段。在这种情况下,severity
枚举类型的值只能是 LOW
,MEDIUM
或 HIGH
。
枚举类型的值
定义了一个枚举类型之后,我们需要为每个枚举值分配一个可读的标签和一个值。为了为 Severity
枚举类型中的每个值分配标签和值,我们需要使用以下语法:
enum EnumName { EnumValue1 @description(value: 1) EnumValue2 @description(value: 2) EnumValue3 @description(value: 3) ... }
在上面的语法中,@description(value: value)
是一个指令,用于为 EnumName
枚举类型中的每个值指定一个可读的标签和数值。 @description
指令在标签和数值之间使用,上面的示例中, EnumValue1
对应的描述是 description
,对应的值是 1
。
枚举类型的限制
- 枚举类型只能包含枚举值,这些值可以被用来代表一个特定的现象或条件,比如错误的类型、状态码等;
- 枚举类型的值必须唯一,不可以重复;
- 枚举类型中的每个值都应该与其它类型中的字段匹配,以达到类型一致性。
示例代码
下面的示例展示了如何使用 GraphQL 枚举类型来定义一个 Book
类型。
-- -------------------- ---- ------- ---- ------------ - ------- ------- -------- - ---- ---- - -- - --- ----- - ------- ------- ------- --------- ------------- -
结论
GraphQL 的枚举类型是一种强大的工具,它允许我们枚举常用常数。 枚举类型可以用于定义和限制数据类型,强制客户端和服务端按照约定使用类型一致的值,减少用户输入错误。同时,在使用 GraphQL 构建的 API 中定义枚举类型,还可以让我们的 API 更加易用、易维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f7b7d7c5c563ced5a6f8b6