Crate graphql_schema_validation

Source
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
Options to configure validation.

Functions§

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