php psr7 validation
1.0.0
该软件包包含一个 PSR-7 中间件,用于验证 HTTP 请求,特别是使用 JSON 模式验证。
警告:该软件包仍在开发中;其 API 可能随时更改,恕不另行通知。使用风险自负。
该软件包已获得 MIT 许可。
使用 JSON 模式验证请求正文(使用 Slim 框架):
$ app -> post ( ' /customers ' , $ handler )
-> add ( new ValidationMiddleware (
Factory:: buildJsonValidatorFromUri ( ' path/to/json-schema.json ' )
));
使用 Swagger 规范文件验证请求正文:
$ app -> post ( ' /customers ' , $ handler )
-> add ( new ValidationMiddleware (
Factory:: buildJsonValidatorFromSwaggerDefinition ( ' path/to/swagger.json ' , ' MyType ' )
));
使用自定义验证器验证请求主体(使用 PHP 7 的匿名类,没有其他原因,因为我可以):
$ app -> post ( ' /customers ' , $ handler )
-> add ( new ValidationMiddleware (
new class implements ValidatorInterface {
public function validateJson ( $ jsonDocument , ValidationResult $ result ) {
$ result -> addErrorForProperty ( ' customernumber ' , ' Foo ' );
}
}
));
组合多个验证器:
$ app -> post ( ' /customers ' , $ handler )
-> add ( new ValidationMiddleware (
new CombinedValidator (
Factory:: buildJsonValidatorFromUri ( ' path/to/schema.json ' ),
new MyVerySpecialCustomValidator ()
)
));