mirror of
https://github.com/retailcrm/graphql-php.git
synced 2024-11-29 00:25:17 +03:00
Docs about custom validation rules
This commit is contained in:
parent
203fddfe4e
commit
4f374bca83
@ -146,3 +146,63 @@ So for example following batch will require single DB request (if user field is
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
To enable query batching, pass **queryBatching** option in server config:
|
||||
```php
|
||||
<?php
|
||||
use GraphQL\Server\StandardServer;
|
||||
|
||||
$server = new StandardServer([
|
||||
'queryBatching' => true
|
||||
]);
|
||||
```
|
||||
|
||||
# Custom Validation Rules
|
||||
Before execution, query is validated using set of standard rules defined by GraphQL spec.
|
||||
It is possible to override standard set of rules globally or per execution.
|
||||
|
||||
Add rules globally:
|
||||
```php
|
||||
<?php
|
||||
use GraphQL\Validator\Rules;
|
||||
use GraphQL\Validator\DocumentValidator;
|
||||
|
||||
// Add to standard set of rules globally:
|
||||
DocumentValidator::addRule(new Rules\DisableIntrospection());
|
||||
```
|
||||
|
||||
Custom rules per execution:
|
||||
```php
|
||||
<?php
|
||||
use GraphQL\GraphQL;
|
||||
use GraphQL\Validator\Rules;
|
||||
|
||||
$myValiationRules = array_merge(
|
||||
GraphQL::getStandardValidationRules(),
|
||||
[
|
||||
new Rules\QueryComplexity(100),
|
||||
new Rules\DisableIntrospection()
|
||||
]
|
||||
);
|
||||
|
||||
$result = GraphQL::executeQuery(
|
||||
$schema,
|
||||
$queryString,
|
||||
$rootValue = null,
|
||||
$context = null,
|
||||
$variableValues = null,
|
||||
$operationName = null,
|
||||
$fieldResolver = null,
|
||||
$myValiationRules // <-- this will override global validation rules for this request
|
||||
);
|
||||
```
|
||||
|
||||
Or with a standard server:
|
||||
```php
|
||||
<?php
|
||||
use GraphQL\Server\StandardServer;
|
||||
|
||||
$server = new StandardServer([
|
||||
'validationRules' => $myValiationRules
|
||||
]);
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user