This package contains a PSR-7 middleware for validating HTTP requests, especially using JSON schema validation.
Warning: This package is still under development; its API can change at any time without notice. Use at own risk.
This package is MIT-licensed.
Validating request bodies using a JSON schema (using the Slim framework):
$app->post('/customers', $handler)
->add(new ValidationMiddleware(
Factory::buildJsonValidatorFromUri('path/to/json-schema.json')
));
Validating request bodies using a Swagger specification file:
$app->post('/customers', $handler)
->add(new ValidationMiddleware(
Factory::buildJsonValidatorFromSwaggerDefinition('path/to/swagger.json', 'MyType')
));
Validating request bodies using a custom validator (using PHP 7's anonymous classes, for no other reason because I can):
$app->post('/customers', $handler)
->add(new ValidationMiddleware(
new class implements ValidatorInterface {
public function validateJson($jsonDocument, ValidationResult $result) {
$result->addErrorForProperty('customernumber', 'Foo');
}
}
));
Combining multiple validators:
$app->post('/customers', $handler)
->add(new ValidationMiddleware(
new CombinedValidator(
Factory::buildJsonValidatorFromUri('path/to/schema.json'),
new MyVerySpecialCustomValidator()
)
));