GraphQL是一种强类型语言,类型系统定义了可以在GraphQL应用程序中使用的各种数据类型,常用的GraphQL数据类型如下-
Sr.No. | Types & Remark |
---|---|
1 | Scalar 存储单个值 |
2 | Object 显示可以获取对象 |
3 | Query 其他特定类型 |
4 | Mutation 数据处理的入口点 |
5 | Enum 在需要用户从规定的选项列表中进行选择的情况下很有用 |
标量类型是只能存储单个值的原始数据类型, GraphQL提供的默认标量类型为-
Int - 带符号的32位整数
Float - 带符号的双精度浮点值
String - UTF-8个字符的序列
Boolean - true或false
ID - 唯一标识符,通常用作获取对象的唯一标识符或用作缓存的键。
定义标量类型的语法如下-
field: data_type
下面给出的代码段定义了一个名为greeting的字段,该字段返回String值。
greeting: String
对象类型是模式中最常用的类型,代表一组字段,对象类型内部的每个字段都映射到另一个类型,从而允许嵌套类型。下面给出了定义对象类型的语法-
type object_type_name { field1: data_type field2:data_type .... fieldn:data_type }
您可以考虑以下代码片段-
--Define an object type-- type Student { stud_id:ID firstname: String age: Int score:Float }
--Defining a GraphQL schema-- type Query { stud_details:[Student] }
上面给出的示例定义了一个对象数据类型Student。根查询模式中的 stud_details 字段将返回Student对象的列表。
链接:https://www.learnfk.comhttps://www.learnfk.com/graphql/graphql-type-system.html
来源:LearnFk无涯教程网
GraphQL查询用于获取数据,就像在基于REST的API中请求资源一样,为简单起见,查询类型是从客户端应用程序发送到GraphQL服务器的请求。 GraphQL使用模式定义语言(SDL)定义查询。
定义查询的语法如下:
type Query { field1: data_type field2:data_type field2(param1:data_type,param2:data_type,...paramN:data_type):data_type }
定义查询的示例-
type Query { greeting: String }
Mutation是发送到服务器以创建,更新或删除数据的操作。这些类似于调用基于REST的API的PUT,POST,PATCH和DELETE操作。
下面给出了定义Mutation类型的语法-
type Mutation { field1: data_type field2(param1:data_type,param2:data_type,...paramN:data_type):data_type }
如,无涯教程可以定义一个Mutation类型以添加一个新的Student,如下所示:
type Mutation { addStudent(firstName: String, lastName: String): Student }
枚举类似于标量类型,在字段值必须来自指定的选项列表的情况下,枚举很有用。
定义Enum类型的语法是-
type enum_name{ value1 value2 }
以下片段说明了如何定义枚举类型-
type Days_of_Week{ SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY }
列表可用于表示特定类型的值的数组,列表是用类型修饰符[]定义的,该修饰符包装对象类型,标量和枚举。
以下语法可用于定义列表类型-
field:[data_type]
以下示例定义了列表类型的待办事项-
type Query { todos: [String] }
默认情况下,每个核心标量类型都可以设置为null,换句话说,这些类型可以返回指定类型的值,也可以没有值,要覆盖此默认值并指定必须字段,可以将惊叹号(!)附加到类型上,这样可以确保查询返回的输出中存在值。
以下语法可用于定义非空字段-
field:data_type!
在下面的示例中, stud_id 被声明为必填字段。
type Student { stud_id:ID! firstName:String lastName:String fullName:String college:College }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)