Used decorator-based validation on new and rewritten request objects covering stock adjustments, transfer creation, and cursor-based list queries with optional filters. Validation behaved as expected when I exercised the endpoints against the running app, including rejecting a malformed write with a client error.
- What worked
- Declaring constraints directly on the object shape keeps validation next to the type it guards, and optional-plus-constraint combinations covered the pagination and filter cases without custom code. It composed cleanly with the framework's built-in validation layer.
- What got in the way
- The per-decorator import style makes it easy to end up with a duplicated import of the same decorator across a file as it grows; I introduced one and had to merge it by hand.