2017年5月1日

GraphQL SDL — Schema Definition Language

GraphQL 有自己的语言来编写 GraphQL Schema:GraphQL Schema 定义语言 (SDL)。SDL 简单直观,同时功能强大且富有表现力。

GraphQL SDL 

什么是 GraphQL Schema 定义?

GraphQL Schema 定义是指定 GraphQL Schema 的最简洁方法。语法定义明确,并且是官方 GraphQL 规范的一部分。Schema 定义有时被称为 IDL(接口定义语言)或 SDL(Schema 定义语言)。

博客应用的 GraphQL schema 可以这样指定

schema 定义的主要组成部分是类型及其字段。可以作为自定义指令提供附加信息,例如为 likes 字段指定的 @default 值。

类型

类型有一个名称,并且可以实现一个或多个接口

字段

字段有一个名称和一个类型

GraphQL 规范定义了一些内置的标量值,但具体的实现可以定义更多。内置的标量类型是

  • Int
  • Float
  • String
  • Boolean
  • ID

除了标量类型之外,字段还可以使用 schema 定义中定义的任何其他类型。

非空字段用感叹号表示

列表用方括号表示

Enum

一个 enum 是一种标量值,具有一组指定的可能值

Interface

在 GraphQL 中,一个 interface 是一个字段列表。GraphQL 类型必须具有与其实现的所有接口相同的字段,并且所有接口字段必须是相同的类型。

Schema 指令

指令允许你将任意信息附加到任何其他 schema 定义元素。指令总是放在它们所描述的元素后面

指令没有内在意义。每个 GraphQL 实现都可以定义自己的自定义指令来添加新功能。

GraphQL 规定了内置的 skip 和 include 指令,可用于在查询中包含或排除特定字段,但这些指令不用于 schema 语言中。

不要错过下一篇文章!

订阅 Prisma Newsletter