graphql-python / graphql-core-legacy

GraphQL base implementation for Python (legacy version – see graphql-core for the current one)
MIT License
374 stars 183 forks source link

Add support for custom validators in default GraphQL backend #267

Open JoaRiski opened 4 years ago

JoaRiski commented 4 years ago

The default GraphQL backend seems to perform validation prior to execution of a query. The validators that are being run are statically defined in https://github.com/graphql-python/graphql-core/blob/fe703f0d176c78b205d2abf929193f1e910fe4a0/graphql/validation/rules/__init__.py#L32-L57 and there doesn't seem to be a very good way to add custom validators to this list.

It would be nice to be able to extend the default GraphQL backend with your own validators, e.g. by having a overridable function called get_validators in the backend class that's used for getting the validators.

Right now the only option (as far as I'm aware) seems to be to completely re-implement the execution and validation logic if you don't want to monkeypatch the validators list.