Graphql中的架构和文档有什么区别?
模式是这样的:
type Query {
fo: String
}
但文档类似于:
query SomeQuery {
foo {
bar
}
}
规范确实令人困惑https://graphql.github.io/graphql-spec/June2018/#sec-Language.Document
我始终使用架构,但是要在graphql-code-generator中生成客户端类型,它需要文档文件。 https://graphql-code-generator.com/docs/getting-started/documents-field
答案 0 :(得分:1)
文档实际上是包含有效GraphQL语法的任何字符串。根据{{3}},文档包含一个或多个定义,其中定义可以是:
操作定义
query UsersQuery {
users {
id
email
}
}
片段定义
fragment UserFragment on User {
id
email
}
类型系统定义
type User {
id: ID!
email: String!
}
类型系统扩展
extend type User {
name: String
}
操作和片段定义称为可执行定义。发送到GraphQL服务的文档必须仅包含可执行文件定义。类型系统定义和扩展用于描述模式-这就是为什么我们通常将它们称为模式定义语言(SDL)。模式是GraphQL服务的“集合类型系统功能”-基本上是表示GraphQL服务可以执行的所有操作的类型和指令的集合。
可以使用类型系统定义来描述模式,但是说类型定义是并不是很准确,因为模式本身也包括实际的字段解析逻辑。 >