request_validator 0.1.0 request_validator: ^0.1.0 copied to clipboard
A middleware to validate request body before route handler, focused with Dart Frog.
Request Validator #
A middleware to validate request body before route handler, currently focused with Dart Frog.
🧭 Overview #
The goal of this library is to provide functionalities to simplify request body validation in Dart Frog applications. It allows to define custom validation rules for different fields within the request body, ensuring data integrity and preventing invalid processing.
🚧 Installation #
Install the following dependency to the pubspec.yaml
file of your Dart Frog application:
dependencies:
request_validator: ^0.1.0
💻 Usage #
🛠️ Create a RequestValidator #
import 'package:request_validator/request_validator.dart';
// Extend the [RequestValidator] and provide the list of validation rules
// and configure the Response on validation failure.
class PersonValidator extends RequestValidator {
// Validation rules will work only for POST requests
PersonValidator() : super(allowedMethods: [HttpMethod.post]);
// Override onError to configure Response object when validation fails
@override
FutureOr<Response> onError(List<ValidationError> errors) {
return Response.json(
statusCode: HttpStatus.badRequest,
body: errors.toMapArray()
);
}
// Override validator rules to handle validating request body object
@override
List<ValidationRule> validationRules() => [
ValidationRule.body('name', (value) => value is String),
ValidationRule.body('age', (value) => value is int && value > 0),
];
}
📦 Use PersonValidator as Middleware #
Handler middleware(Handler handler) {
final validator = PersonValidator();
// The serveAsMiddleware extension on the validator converts it into
// a middleware function
return handler.use(validator.serveAsMiddleware());
}