vaden library
Vaden Framework
A modern, annotation-driven backend framework for Dart applications.
Vaden is designed to simplify backend development by providing a structured, declarative approach to building REST APIs with built-in dependency injection, middleware support, and OpenAPI documentation capabilities.
Core Features
- Annotation-driven development: Define controllers, routes, and components using annotations
- Dependency injection: Built-in DI system powered by auto_injector
- Middleware support: Easy-to-use middleware system for request/response processing
- OpenAPI integration: Automatic API documentation generation
- Type-safe serialization: Robust data transfer object (DTO) handling
- Security: Guards for route protection and authentication
- Validation: Input validation through lucid_validation integration
Framework Architecture
Vaden is built on top of the Shelf ecosystem, providing a robust foundation for handling HTTP requests and responses. The framework follows a modular architecture with clear separation of concerns:
- Controllers: Handle incoming HTTP requests and define API endpoints
- Services: Contain business logic and application workflows
- Repositories: Manage data access and persistence
- DTOs: Define data transfer objects for request/response serialization
- Guards: Protect routes with authentication and authorization logic
- Middlewares: Process requests/responses for cross-cutting concerns
Getting Started
To use Vaden, import this library and start defining your application components using the provided annotations. See the documentation for each component for detailed usage instructions.
Classes
- Api
- Provides OpenAPI documentation for a controller.
- ApiClient
- ApiContent
- Describes the content type and schema of a request or response body.
- ApiOperation
- Provides OpenAPI documentation for an endpoint operation.
- ApiParam
- Provides OpenAPI documentation for a path parameter.
- ApiQuery
- Provides OpenAPI documentation for a query parameter.
- ApiResponse
- Describes a possible response from an API endpoint.
- ApiSecurity
- Specifies the security schemes required for an API endpoint.
- ApplicationRunner
- Defines a contract for components that should execute automatically during application startup.
- ApplicationSettings
- A class for loading and accessing application configuration from YAML files.
- AutoInjector
-
Automatic Dependency Injection System, but without build_runner :)
[tag]: AutoInject instance identity.
[on]: Helps with instance registration.
[paramObservers]: List of functions that listen and transform parameters while they are being parsed when requested by theget()method.
- AwsS3Storage
- Implementation of the Storage interface that uses Amazon S3 for cloud storage.
- BaseComponent
- Base interface for all component annotations.
- Bean
- Marks a method in a Configuration class as a bean factory.
-
Bind<
T> -
BindConfig<
T> - Body
- Binds the request body to a method parameter.
- Cascade
- A helper that calls several handlers in sequence and returns the first acceptable response.
- CommandLineRunner
- Defines a contract for components that should execute based on command-line arguments during application startup.
-
CommonModule<
T extends VadenApplication> -
The
CommonModuleabstract class defines the structure for creating modules that can register their own dependency injections and route configurations. This allows for modularization and better organization of code in a Vaden-based application. - Component
- Marks a class as a general component in the application.
- Configuration
- Marks a class as a configuration component in the application.
- Context
- Binds a context value from the request to a method parameter.
- Controller
- Marks a class as a REST controller in the application.
- ControllerAdvice
- Marks a class as a controller advice for global exception handling.
- Culture
- DartVadenApplication
- Represents the core application structure in Vaden, managing server startup, dependency injection, and routing.
- DefaultLanguageManager
- Delete
- Marks a method as a handler for HTTP DELETE requests.
- Disposable
- Interface for classes that need to release resources when they are no longer needed.
- DSON
- Data Serialization Object Notation (DSON) system for Vaden.
- DTO
- Marks a class as a Data Transfer Object (DTO).
- EnforceJsonContentType
- Middleware that ensures all responses have a JSON content type header.
- EnglishLanguage
- ExceptionHandler
- Marks a method in a ControllerAdvice class as an exception handler.
- ExposedRuleResult
- Represents the evaluation status of a single validation rule for a property.
- FirebaseStorage
- Implementation of the Storage interface that uses Firebase Storage for cloud storage.
- FormData
-
A Multipart subpart with a parsed name and filename values read from
its
content-dispositionheader. - Get
- Marks a method as a handler for HTTP GET requests.
- Head
- Marks a method as a handler for HTTP HEAD requests.
- Header
- Binds a header value from the request to a method parameter.
- Injector
- Register and get binds
- IOServer
-
A Server backed by a
dart:ioHttpServer. - JsonDefault
- Declares a default value for a DTO field used during JSON deserialization and exposed in OpenAPI schema generation.
- JsonIgnore
- Excludes a field from JSON serialization and deserialization.
- JsonKey
- Specifies the JSON key name for a field in a DTO.
- Language
- LanguageManager
- LayersGraph
- LocalStorage
- Implementation of the Storage interface that uses the local file system.
- LucidValidation
-
LucidValidationBuilder<
TProp, Entity> -
Builder class used to define validation rules for a specific property type
TProp. -
LucidValidator<
E> -
Abstract class for creating validation logic for a specific entity type
E. - Mount
- Mounts a Router instance at the specified path.
- Multipart
- An entry in a multipart request.
- NamedParam
- OpenApiConfig
- Configuration class for generating OpenAPI documentation in the Vaden framework.
- Options
- Marks a method as a handler for HTTP OPTIONS requests.
- Param
- Binds a path parameter from the request URL to a method parameter.
-
ParamParse<
P, R> - Abstract class for parameter parsing and serialization in Vaden.
- Parse
-
Marks a
ParamParseclass as globally discoverable. - Patch
- Marks a method as a handler for HTTP PATCH requests.
- Pipeline
- A helper that makes it easy to compose a set of Middleware and a Handler.
- PositionalParam
- Post
- Marks a method as a handler for HTTP POST requests.
- Put
- Marks a method as a handler for HTTP PUT requests.
- Query
- Binds a query parameter from the request URL to a method parameter.
- Repository
- Marks a class as a repository in the application.
- Request
- An HTTP request to be processed by a Shelf application.
- ResourceService
- A service for serving static files in a Vaden application.
- Response
- The response returned by a Handler.
-
ResponseEntity<
T> - A class that represents an HTTP response with body, status code, and headers.
- Route
-
Annotation for handler methods that requests should be routed when using
package
shelf_router_generator. - Router
- A shelf Router routes requests to handlers based on HTTP verb and route pattern.
- Scope
- Specifies the bind type for a component in the dependency injection container. This annotation is used to define how a component should be bound in the dependency injection container, such as whether it should be a singleton, lazy singleton, or instance. Example:
- Server
- An adapter with a concrete URL.
- ServerHandler
- A connected pair of a Server and a Handler.
- Service
- Marks a class as a service in the application.
- Storage
- Abstract class defining the interface for file storage in the Vaden framework.
- UseGuards
- Applies guards to a controller or endpoint.
- UseMiddleware
- Applies middleware to a controller or endpoint.
- UseParse
-
Specifies which custom
ParamParseclass should be used for a DTO field. - VadenApplication
- VadenGuard
- Base class for creating guards in the Vaden framework.
- VadenMiddleware
- Base class for creating middleware in the Vaden framework.
- VadenModule
- Defines a Vaden module that can import other modules.
- ValidationResult
- Represents the result of a validation rule.
-
ValidatorBuilder<
T> - Builder class for creating validators in the Vaden framework.
Enums
- BindType
- CascadeMode
- Defines the behavior of rule execution when a validation failure occurs.
Mixins
-
Validator<
T> - Mixin for creating validators in the Vaden framework.
Extension Types
- FormDataRequest
- A multipart request containing form data.
- MultipartRequest
- A multipart request.
Extensions
-
AfterFieldDatetimeValidation
on LucidValidationBuilder<
DateTime, E> -
AlphanumericNullableValidation
on SimpleValidationBuilder<
String?> -
AlphanumericOrNullableValidation
on SimpleValidationBuilder<
String?> -
AlphanumericValidation
on SimpleValidationBuilder<
String> -
BeforeFieldDatetimeValidation
on LucidValidationBuilder<
DateTime, E> -
ContainsNullableValidation
on SimpleValidationBuilder<
String?> -
ContainsOrNullableValidation
on SimpleValidationBuilder<
String?> -
ContainsValidation
on SimpleValidationBuilder<
String> -
EndsWithNullableValidation
on SimpleValidationBuilder<
String?> -
EndsWithOrNullableValidation
on SimpleValidationBuilder<
String?> -
EndsWithValidation
on SimpleValidationBuilder<
String> -
EqualValidation
on LucidValidationBuilder<
T, E> -
Extension on LucidValidationBuilder for
Tproperties to add an equality validation. -
ExclusiveBetweenDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
ExclusiveBetweenDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
ExclusiveBetweenDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a exclusive between validation.
-
ExclusiveBetweenOrNullableValidation
on SimpleValidationBuilder<
num?> -
ExclusiveBetweenValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add an exclusive between validation.
-
GreaterThanDateTimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanDateTimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanDateTimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a greater than validation.
-
GreaterThanNullablealidation
on SimpleValidationBuilder<
num?> -
GreaterThanOrEqualToDateTimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanOrEqualToDateTimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanOrEqualToDateTimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a greater than validation.
-
GreaterThanOrNullableValidation
on SimpleValidationBuilder<
num?> -
GreaterThanValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a greater than validation.
-
HttpUrlNullableValidation
on SimpleValidationBuilder<
String?> -
HttpUrlOrNullableValidation
on SimpleValidationBuilder<
String?> -
HttpUrlValidation
on SimpleValidationBuilder<
String> -
InclusiveBetweenDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
InclusiveBetweenDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
InclusiveBetweenDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a inclusive between validation.
-
InclusiveBetweenOrNullableValidation
on SimpleValidationBuilder<
num?> -
InclusiveBetweenValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add an inclusive between validation.
-
InFutureDatetimeValidation
on SimpleValidationBuilder<
DateTime> -
InFutureNullableDatetimeValidation
on SimpleValidationBuilder<
DateTime?> -
InFutureOrNullableDatetimeValidation
on SimpleValidationBuilder<
DateTime?> -
InPastDatetimeValidation
on SimpleValidationBuilder<
DateTime> -
InPastNullableDatetimeValidation
on SimpleValidationBuilder<
DateTime?> -
InPastOrNullableDatetimeValidation
on SimpleValidationBuilder<
DateTime?> -
IsEmptyNullableValidation
on SimpleValidationBuilder<
String?> -
IsEmptyOrNullableValidation
on SimpleValidationBuilder<
String?> -
IsEmptyValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add an empty string validation.
-
IsEvenNullableValidation
on SimpleValidationBuilder<
num?> -
IsEvenOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsEvenValidation
on SimpleValidationBuilder<
num> -
IsFalseNullableValidation
on SimpleValidationBuilder<
bool?> -
IsFalseOrNullableValidation
on SimpleValidationBuilder<
bool?> -
IsFalseValidation
on SimpleValidationBuilder<
bool> -
IsInEnumOrNullableValidation
on SimpleValidationBuilder<
T?> -
IsInEnumValidation
on SimpleValidationBuilder<
T> -
Extension to validate that a value is one of a set of allowed values,
typically the values of an
enum. -
IsLowercaseNullableValidation
on SimpleValidationBuilder<
String?> -
IsLowercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
IsLowercaseValidation
on SimpleValidationBuilder<
String> -
IsNegativeNullableValidation
on SimpleValidationBuilder<
num?> -
IsNegativeOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsNegativeValidation
on SimpleValidationBuilder<
num> -
IsNonNegativeNullableValidation
on SimpleValidationBuilder<
num?> -
IsNonNegativeOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsNonNegativeValidation
on SimpleValidationBuilder<
num> -
IsNonZeroNullableValidation
on SimpleValidationBuilder<
num?> -
IsNonZeroOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsNonZeroValidation
on SimpleValidationBuilder<
num> -
IsNotNullValidation
on SimpleValidationBuilder<
T?> -
Extension on LucidValidationBuilder for
T?properties to add a not null validation. -
IsNullValidation
on SimpleValidationBuilder<
T?> -
Extension on LucidValidationBuilder for
T?properties to add a null validation. -
IsNumericNullableValidation
on SimpleValidationBuilder<
String?> -
IsNumericOrNullableValidation
on SimpleValidationBuilder<
String?> -
IsNumericValidation
on SimpleValidationBuilder<
String> -
IsOddNullableValidation
on SimpleValidationBuilder<
num?> -
IsOddOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsOddValidation
on SimpleValidationBuilder<
num> -
IsPositiveNullableValidation
on SimpleValidationBuilder<
num?> -
IsPositiveOrNullableValidation
on SimpleValidationBuilder<
num?> -
IsPositiveValidation
on SimpleValidationBuilder<
num> -
IsTrueNullableValidation
on SimpleValidationBuilder<
bool?> -
IsTrueOrNullableValidation
on SimpleValidationBuilder<
bool?> -
IsTrueValidation
on SimpleValidationBuilder<
bool> -
IsUppercaseNullableValidation
on SimpleValidationBuilder<
String?> -
IsUppercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
IsUppercaseValidation
on SimpleValidationBuilder<
String> -
LengthOrNullableValidation
on SimpleValidationBuilder<
String?> -
LengthValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a combined length validation.
-
LessThanDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a less than validation.
-
LessThanNullableValidation
on SimpleValidationBuilder<
num?> -
LessThanOrEqualToDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanOrEqualToDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanOrEqualToDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a less than validation.
-
LessThanOrNullableValidation
on SimpleValidationBuilder<
num?> -
LessThanValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a less than validation.
-
ListContainsNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
ListContainsOrNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
ListContainsValidation
on SimpleValidationBuilder<
List< T> > -
MatchesPatternNullableValidation
on SimpleValidationBuilder<
String?> -
MatchesPatternOrNullableValidation
on SimpleValidationBuilder<
String?> -
MatchesPatternValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a regex pattern match validation.
-
MaxItemsNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
MaxItemsOrNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
MaxItemsValidation
on SimpleValidationBuilder<
List< T> > -
MaxLengthNullableValidation
on SimpleValidationBuilder<
String?> -
MaxLengthOrNullableValidation
on SimpleValidationBuilder<
String?> -
MaxLengthValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a maximum length validation.
-
MaxNullableValidation
on SimpleValidationBuilder<
num?> -
MaxOrNullableValidation
on SimpleValidationBuilder<
num?> -
MaxValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a maximum value validation.
- MiddlewareExtensions on Middleware
- Extensions on Middleware to aid in composing Middleware and Handlers.
-
MinItemsNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
MinItemsOrNullableValidation
on SimpleValidationBuilder<
List< T> ?> -
MinItemsValidation
on SimpleValidationBuilder<
List< T> > -
MinLengthNullableValidation
on SimpleValidationBuilder<
String?> -
MinLengthOrNullableValidation
on SimpleValidationBuilder<
String?> -
MinLengthValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a minimum length validation.
-
MinNullableValidation
on SimpleValidationBuilder<
num?> -
MinOrNullableValidation
on SimpleValidationBuilder<
num?> -
MinValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a minimum value validation.
- MultipartFromRequest on Request
- Extensions that call MultipartRequest.of and FormDataRequest.of as an extension on Request.
-
MultipleOfNullableValidation
on SimpleValidationBuilder<
num?> -
MultipleOfOrNullableValidation
on SimpleValidationBuilder<
num?> -
MultipleOfValidation
on SimpleValidationBuilder<
num> -
MustHaveLowercaseNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveLowercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveLowercaseValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a lowercase letter validation.
-
MustHaveNumbersNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveNumbersOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveNumbersValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a numeric character validation.
-
MustHaveSpecialCharacterNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveSpecialCharacterOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveSpecialCharacterValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a special character validation.
-
MustHaveUppercaseNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveUppercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveUppercaseValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add an uppercase letter validation.
-
NotEmptyNullableValidation
on SimpleValidationBuilder<
String?> -
NotEmptyOrNullableValidation
on SimpleValidationBuilder<
String?> -
NotEmptyValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a not empty validation.
-
NotEqualValidation
on LucidValidationBuilder<
T, E> -
Extension on LucidValidationBuilder for
Tproperties to add a non-equality validation. - PipelineExtension on Pipeline
- Extension on the shelf Pipeline class to provide convenient methods for adding Vaden-specific middleware and guards.
-
PrecisionScaleOrNullableValidation
on SimpleValidationBuilder<
num?> -
PrecisionScaleValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a precision/scale validation.
-
RangeNullableValidation
on SimpleValidationBuilder<
num?> -
RangeOrNullableValidation
on SimpleValidationBuilder<
num?> -
RangeValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a range validation.
-
RepeatedCharactersNullableValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties to add validation against sequential repeated characters.
-
RepeatedCharactersOrNullValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties that allows either a valid string with no repeated characters or null.
-
RepeatedCharactersValidator
on SimpleValidationBuilder<
String> - Extension on SimpleValidationBuilder for String properties to add validation against sequential repeated characters.
- RouterParams on Request
-
SequentialCharactersNullableValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties to add validation against sequential characters.
-
SequentialCharactersOrNullValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties that allows either a valid string with no sequential characters or null.
-
SequentialCharactersValidator
on SimpleValidationBuilder<
String> - Extension on SimpleValidationBuilder for String properties to add validation against sequential characters.
-
StartsWithNullableValidation
on SimpleValidationBuilder<
String?> -
StartsWithOrNullableValidation
on SimpleValidationBuilder<
String?> -
StartsWithValidation
on SimpleValidationBuilder<
String> -
ValidCEPNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCEPOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCEPValidation
on SimpleValidationBuilder<
String> -
ValidCnpjNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCnpjOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCnpjValidation
on SimpleValidationBuilder<
String> -
ValidCPFNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjValidation
on SimpleValidationBuilder<
String> -
ValidCPFOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCPFValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a valid CPF validation.
-
ValidCreditCardNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCreditCardOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCreditCardValidation
on SimpleValidationBuilder<
String> -
ValidEmailNullableValidation
on SimpleValidationBuilder<
String?> -
ValidEmailOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidEmailValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a valid email validation.
-
ValidIpv4NullableValidation
on SimpleValidationBuilder<
String?> -
ValidIpv4OrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidIpv4Validation
on SimpleValidationBuilder<
String> -
ValidIpv6NullableValidation
on SimpleValidationBuilder<
String?> -
ValidIpv6OrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidIpv6Validation
on SimpleValidationBuilder<
String> -
ValidPhoneNullableValidation
on SimpleValidationBuilder<
String?> -
ValidPhoneOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidPhoneValidation
on SimpleValidationBuilder<
String> -
A validation extension for
SimpleValidationBuilder<String>that provides methods to validate Brazilian phone numbers, both with and without country code. -
ValidUrlOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidUrlValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a valid URL validation.
-
ValidUuidNullableValidation
on SimpleValidationBuilder<
String?> -
ValidUuidOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidUuidValidation
on SimpleValidationBuilder<
String>
Properties
- addChunkedEncoding → Middleware
-
Middleware that adds
chunked transfer coding
to a responses if none of the following conditions are true:
final
Functions
-
changeParam<
T> (T newValue) → ParamTransform -
cors(
{List< String> allowedOrigins = const ['*'], List<String> allowMethods = const ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], List<String> allowHeaders = const ['Origin', 'Content-Type', 'Accept']}) → Middleware - Creates a middleware that handles Cross-Origin Resource Sharing (CORS).
-
createMiddleware(
{FutureOr< Response?> requestHandler(Request)?, FutureOr<Response> responseHandler(Response)?, FutureOr<Response> errorHandler(Object error, StackTrace)?}) → Middleware - Creates a Middleware using the provided functions.
-
extractClassName(
String input) → String -
handleRequest(
HttpRequest request, Handler handler, {String? poweredByHeader = 'Dart with package:shelf'}) → Future< void> -
Uses
handlerto handlerequest. -
logRequests(
{void logger(String message, bool isError)?}) → Middleware - Middleware which prints the time of the request, the elapsed time for the inner handlers, the response's status code and the request URI.
-
params(
Request request, String name) → String - Get a URL parameter captured by the Router.
-
serve(
Handler handler, Object address, int port, {SecurityContext? securityContext, int? backlog, String? poweredByHeader = 'Dart with package:shelf'}) → Future< HttpServer> -
Starts an HttpServer that listens on the specified
addressandportand sends requests tohandler. -
serveRequests(
Stream< HttpRequest> requests, Handler handler, {String? poweredByHeader = 'Dart with package:shelf'}) → void - Serve a Stream of HttpRequests.
Typedefs
-
AsyncResponseEntity<
T> = Future< ResponseEntity< T> > - Represents a Future that resolves to a ResponseEntity.
-
AsyncRuleFunc<
Entity> = Future< ValidationException?> Function(Entity entity) - Signature for an asynchronous validation rule.
-
DisposeCallback<
T> = void Function(T value) -
FromJsonFunction<
T> = T Function(Map< String, dynamic> json) - Type definition for a function that converts a JSON map to an object of type T.
-
Handler
= FutureOr<
Response> Function(Request request) - A function which handles a Request.
- Middleware = Handler Function(Handler innerHandler)
- A function which creates a new Handler by wrapping a Handler.
-
NotifierCallback<
T> = dynamic Function(T value) - ParamTransform = Param? Function(Param param)
-
RuleFunc<
Entity> = ValidationException? Function(Entity entity) - Signature for a synchronous validation rule.
-
SimpleValidationBuilder<
T> = LucidValidationBuilder< T, dynamic> -
ToJsonFunction<
T> = Map< String, dynamic> Function(T object) - Type definition for a function that converts an object of type T to a JSON map.
-
ToOpenApiNormalMap
= Map<
String, dynamic> - Type definition for a map that represents the OpenAPI schema for a type.
Exceptions / Errors
- AsyncValidationException
- Thrown when a synchronous validation entry point (such as LucidValidator.validate or LucidValidator.byField) is used on a property that contains asynchronous rules (registered via LucidValidationBuilder.mustAsync / LucidValidationBuilder.useAsync).
- AutoInjectorException
-
AutoInjection Exception with ToString auto configured
message : message of exception
stackTrace : traces of exception - HijackException
- An exception used to indicate that a request has been hijacked.
- InjectorAlreadyCommited
-
AutoInjecton Exception for Injector Already Commited.
Store all parent classNames message : message of exception
stackTrace : traces of exception
injectorTag : tag of the current injector - LucidValidationException
-
Aggregate exception thrown by
LucidValidator.validateAndThrow/validateAndThrowAsyncwhen validation fails. -
ResponseException<
W> - Exception class for handling HTTP responses with error states.
- UnregisteredInstance
-
AutoInjection Exception for Unregistered instance.
Store all parent classNames message : message of exception
stackTrace : traces of exception
classNames : all parent class names - UnregisteredInstanceByKey
-
AutoInjection Exception for Unregistered instance.
Store all parent classNames message : message of exception
stackTrace : traces of exception
- UpwardResolutionCycle
-
AutoInjection Exception thrown when an
addInjector(..., resolveUpward: true)edge would create a cycle in the upward (ancestor) resolution chain.
Upward resolution must form a tree: a child resolves against its ancestor as a fallback, never the other way around. A mutual upward link would make resolution recurse forever, so it is rejected eagerly at composition time.
injectorTag : tag of the injector at which the cycle was detected - ValidationException
- Represents an error that occurs during validation.