graphql/validation
模块负责完成一个 GraphQL 请求的验证阶段。你可以从 graphql/validation
模块导入,或者从根 graphql
模块导入,如下:
import { validate } from 'graphql/validation'; // ES6 var { validate } = require('graphql/validation'); // CommonJS
function validate( schema: GraphQLSchema, ast: Document, rules?: Array<any> ): Array<GraphQLError>
实现规范的“验证”章节。
验证过程会同步执行,如果发生错误则返回错误数组,如果文档有效没有发生错误,则返回空数组。
如果未提供特定的验证规则,则执行 GraphQL 规范的默认验证规则。
每个验证规则都是一个函数,返回一个 visitor(查看 language/visitor API)。visitor 方法应当在文档无效时返回 GraphQLErrors,或者 GraphQLError 数组。
visitor 应该支持 visitSpreadFragments: true
,这将改变 visitor 的行为:跳过顶层定义的片段,并访问这些片段的所有展开点。
var specifiedRules: Array<(context: ValidationContext): any>
这个集合包含了所有 GraphQL 规范定义的验证规则。