Docs
General
Types
Codegen
Extensions
>Errors
>Guides
Editor integration
Concepts
Integrations
Federation
Operations
AddValidationRules
This extension allows you add custom validation rules.
See graphql.validation.rules.custom for some custom rules that can be added from GraphQl-core.
Usage example:
import strawberryfrom strawberry.extensions import AddValidationRulesfrom graphql import ValidationRule
class MyCustomRule(ValidationRule): ...
schema = strawberry.Schema( Query, extensions=[ AddValidationRules(MyCustomRule), ],)
API reference:
class AddValidationRules(validation_rules): ...
validation_rules: List[Type[ASTValidationRule]]
List of GraphQL validation rules.
More examples:
Adding a custom rule
import strawberryfrom strawberry.extensions import AddValidationRulesfrom graphql import ValidationRule
class CustomRule(ValidationRule): def enter_field(self, node, *args) -> None: if node.name.value == "example": self.report_error(GraphQLError("Can't query field 'example'"))
schema = strawberry.Schema( Query, extensions=[ AddValidationRules([CustomRule]), ],)
result = schema.execute_sync("{ example }")
assert str(result.errors[0]) == "Can't query field 'example'"
Adding the NoDeprecatedCustomRule
from GraphQL-core
import strawberryfrom strawberry.extensions import AddValidationRulesfrom graphql.validation import NoDeprecatedCustomRule schema = strawberry.Schema( Query, extensions=[ AddValidationRules([NoDeprecatedCustomRule]), ],)
Adding the NoSchemaIntrospectionCustomRule
from GraphQL-core
import strawberryfrom strawberry.extensions import AddValidationRulesfrom graphql.validation import NoSchemaIntrospectionCustomRule schema = strawberry.Schema( Query, extensions=[ AddValidationRules([NoSchemaIntrospectionCustomRule]), ],)