【发布时间】:2020-12-01 18:12:08
【问题描述】:
我想根据示例 JSON 文档验证 Graphql Schema,无论示例 JSON 文档是否包含所有必需的字段。
从下面的 Graphql 架构中可以看出,id、name 是必填字段,示例 JSON 对象也具有这些属性。理想的validateMySampleJSON(schema, sampleJSON) 在这种情况下应该返回true。
import {
GraphQLID,
GraphQLNonNull,
GraphQLObjectType,
GraphQLSchema,
GraphQLString,
} from 'graphql';
const RootQuery = new GraphQLObjectType({
name: 'Book',
fields: () => ({
id: { type: GraphQLNonNull(GraphQLID) },
name: { type: GraphQLNonNull(GraphQLString) },
genre: { type: GraphQLString },
}),
});
const schema = new GraphQLSchema({
query: RootQuery,
});
const sampleJSON = {
'id': '1',
'name': 'Awesome Book',
};
const isValid = validateMySampleJSON(schema, sampleJSON);
console.log(isValid); // true
const anotherSampleJSON = {
'id': '1',
'genre': 'mystery'
};
const isValid = validateMySampleJSON(schema, anotherSampleJSON);
console.log(isValid); // false
【问题讨论】: