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 ()
)
));