簡體   English   中英

根據示例 JSON object 驗證 GraphQL 架構

[英]Validate GraphQL Schema against a sample JSON object

我想根據示例 JSON 文檔驗證 Z3540F3F3F751F2A6FD0584DD35F836C32AZ 架構,示例 JSON 文檔是否具有所有必需的字段。

正如您從下面看到的 Graphql 架構idname是必填字段,示例 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。 但是,您可以使用其他工具的組合來實現此目的。

  1. 您可以使用graphql-2-json-schema package 將 GraphQL 架構覆蓋到 JSON 架構。
  2. 擁有 JSON 架構后,您可以使用jsonschema package 加載架構並根據它驗證數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM