2017 年 5 月 1 日

GraphQL SDL — Schema Definition Language

GraphQL 有其自己的语言来编写 GraphQL Schema:GraphQL Schema Definition Language (SDL)。SDL 简单直观,同时又极其强大和富有表现力。

GraphQL SDL 

什么是 GraphQL Schema Definition?

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

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

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

类型

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

字段

字段具有名称和类型

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

  • Int
  • Float
  • String
  • Boolean
  • ID

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

不可为空的字段用感叹号表示

列表用方括号表示

枚举

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

接口

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

Schema 指令

指令允许您将任意信息附加到任何其他 schema definition 元素。指令始终放在它们描述的元素之后

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

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

不要错过下一篇文章!

注册 Prisma Newsletter