From d2013cc7f020aa86b1a1566b4e13802c95913c93 Mon Sep 17 00:00:00 2001 From: Kien Dang Date: Thu, 26 Oct 2023 19:51:19 +0800 Subject: [PATCH] Add missing schema validation step --- graphene_django/views.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/graphene_django/views.py b/graphene_django/views.py index b696020..d7d74b8 100644 --- a/graphene_django/views.py +++ b/graphene_django/views.py @@ -9,7 +9,14 @@ from django.shortcuts import render from django.utils.decorators import method_decorator from django.views.decorators.csrf import ensure_csrf_cookie from django.views.generic import View -from graphql import ExecutionResult, OperationType, execute, get_operation_ast, parse +from graphql import ( + ExecutionResult, + OperationType, + execute, + get_operation_ast, + parse, + validate_schema, +) from graphql.error import GraphQLError from graphql.execution.middleware import MiddlewareManager from graphql.language import OperationDefinitionNode @@ -296,6 +303,10 @@ class GraphQLView(View): return None raise HttpError(HttpResponseBadRequest("Must provide query string.")) + schema_validation_errors = validate_schema(self.schema.graphql_schema) + if schema_validation_errors: + return ExecutionResult(data=None, errors=schema_validation_errors) + try: document = parse(query) except Exception as e: