Expand description

§graphql-schema-validation

crates.io docs.rs

This crate implements GraphQL SDL schema validation according to the 2021 version of the GraphQL spec.

Scope:

  • All the spec and nothing but the spec.
  • Query documents are out of scope, we only validate schemas.
  • The error messages should be as close as possible to the style of other GraphQL schema validation libraries.

§Example

use graphql_schema_validation::validate;

fn main() {
  let graphql = "schema { query: MyQueryDoesNotExist }";

  let diagnostics = validate(graphql);

  assert!(diagnostics.has_errors());

  let formatted_diagnostics = diagnostics.iter().map(|err| format!("{}", err)).collect::<Vec<String>>();
  assert_eq!(formatted_diagnostics, ["Cannot set schema query root to unknown type `MyQueryDoesNotExist`"]);
}

§Status

The crate is being actively developed and maintained. It covers the spec completely and faithfully, as far as we are aware.

Structs§

  • Options to configure validation.

Functions§

  • Validate the GraphQL SDL document and produce a possibly empty collection of errors.
  • Validate the GraphQL SDL document and produce a possibly empty collection of errors.