GraphQL - 类型系统

GraphQL - 类型系统 首页 / GraphQL入门教程 / GraphQL - 类型系统

GraphQL是一种强类型语言,类型系统定义了可以在GraphQL应用程序中使用的各种数据类型,常用的GraphQL数据类型如下-

Sr.No.Types & Remark
1

Scalar

存储单个值

2

Object

显示可以获取对象

3

Query

其他特定类型

4

Mutation

数据处理的入口点

5

Enum

在需要用户从规定的选项列表中进行选择的情况下很有用

Scalar 类型

标量类型是只能存储单个值的原始数据类型, GraphQL提供的默认标量类型为-

  • Int            - 带符号的32位整数

  • Float        - 带符号的双精度浮点值

  • String      - UTF-8个字符的序列

  • Boolean  - true或false

  • ID            - 唯一标识符,通常用作获取对象的唯一标识符或用作缓存的键。

定义标量类型的语法如下-

field: data_type

下面给出的代码段定义了一个名为greeting的字段,该字段返回String值。

greeting: String

Object 类型

对象类型是模式中最常用的类型,代表一组字段,对象类型内部的每个字段都映射到另一个类型,从而允许嵌套类型。下面给出了定义对象类型的语法-

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对象的列表。

Query 类型

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 类型

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 类型

枚举类似于标量类型,在字段值必须来自指定的选项列表的情况下,枚举很有用。

定义Enum类型的语法是-

无涯教程网

type enum_name{
   value1
   value2
}

以下片段说明了如何定义枚举类型-

type Days_of_Week{
   SUNDAY
   MONDAY
   TUESDAY
   WEDNESDAY
   THURSDAY
   FRIDAY
   SATURDAY
}

List 类型

列表可用于表示特定类型的值的数组,列表是用类型修饰符[]定义的,该修饰符包装对象类型,标量和枚举。

以下语法可用于定义列表类型-

field:[data_type]

以下示例定义了列表类型的待办事项-

type Query {
   todos: [String]
}

Non-Nullable 类型

默认情况下,每个核心标量类型都可以设置为null,换句话说,这些类型可以返回指定类型的值,也可以没有值,要覆盖此默认值并指定必须字段,可以将惊叹号(!)附加到类型上,这样可以确保查询返回的输出中存在值。

以下语法可用于定义非空字段-

field:data_type!

在下面的示例中, stud_id 被声明为必填字段。

链接:https://www.learnfk.comhttps://www.learnfk.com/graphql/graphql-type-system.html

来源:LearnFk无涯教程网

type Student {
   stud_id:ID!
   firstName:String
   lastName:String
   fullName:String
   college:College
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转Spring全家桶 -〔丁雪丰〕

Electron开发实战 -〔邓耀龙〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

人人都用得上的写作课 -〔涵柏〕

流程型组织15讲 -〔蒋伟良〕

大厂广告产品心法 -〔郭谊〕

遗留系统现代化实战 -〔姚琪琳〕

人人都用得上的数字化思维课 -〔付晓岩〕

互联网人的数字化企业生存指南 -〔沈欣〕

好记忆不如烂笔头。留下您的足迹吧 :)