Seals (Validation) — Aquilia Documentation
Comprehensive guide and documentation for Seals (Validation) in the Aquilia framework. View API reference, examples, and implementation patterns.
Docs / Contracts / Seals & Validation Seals & Validation Sealing is validation. The is_sealed() method runs type checks, constraint enforcement, and custom @ward validators. Validation Pipeline , , , , ].map(p => ( ))} Execution # Instantiate with request body bp = ProductContract(data=request.json) # Run validations if not bp.is_sealed(): return Response.json(bp.errors, status=422) # Persist product = await bp.imprint(db=db) Cross-Field Validation Use the @ward decorator to enforce dependencies between multiple fields: from aquilia.contracts import Contract, SealFault from aquilia.contracts.ward import ward class EventContract(Contract): start_date = DateFacet() end_date = DateFacet() @ward def validate_dates(self): """Ensure end_date is strictly after start_date.""" start = self.validated.get("start_date") end = self.validated.get("end_date") if start and end and end Accumulating Errors Accumulate validation errors instead of raising immediately using self.reject(): {`class SignupContract(Contract): password = TextFacet(min_length=8) password_confirm = TextFacet() @ward def verify_password_match(self): pwd = self.validated.get("password") conf = self.validated.get("password_confirm") if pwd != conf: self.reject("password_confirm", "Passwords do not match.") Facets Projections )
Go to Homepage