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]), ])