[英]Json schema to validate object's values against content of another object
[英]Validate GraphQL Schema against a sample JSON object
我想根据示例 JSON 文档验证 Z3540F3F3F751F2A6FD0584DD35F836C32AZ 架构,示例 JSON 文档是否具有所有必需的字段。
正如您从下面看到的 Graphql 架构id
, name
是必填字段,示例 JSON object 也具有这些属性。 在这种情况下,理想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
如果您正在寻找使用 GraphQL 工具的解决方案,那么截至今天,答案是否定的。 我没有看到任何开箱即用的验证 function。 但是,您可以使用其他工具的组合来实现此目的。
graphql-2-json-schema
package 将 GraphQL 架构覆盖到 JSON 架构。jsonschema
package 加载架构并根据它验证数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.