This backend uses a schema-based validation middleware to validate request segments before handler logic runs.
Validated segments:
req.paramsreq.queryreq.body
- Schema utilities:
src/validation/requestSchema.ts - Middleware factory:
src/middleware/requestValidation.ts - Route integration:
src/index.ts
Exported schema and middleware APIs include structured JSDoc comments describing behavior and constraints.
For each segment (params, query, body):
- Reject non-object inputs.
- Reject unknown keys (strict allow-list).
- Enforce required fields.
- Enforce primitive types (
string,number,boolean). - Enforce optional constraints (
minLength,maxLength,min,max,enum,pattern).
On validation failure, middleware returns 400:
{
"error": "Validation failed",
"details": ["body.title is required"]
}- API consumers send JSON bodies for protected endpoints.
- Incoming data is untrusted.
- Unexpected field injection: blocked by unknown-key rejection.
- Type confusion: blocked by strict primitive type checks.
- Input boundary abuse: constrained with range and length checks.
- No authentication/authorization changes.
- No business rule validation outside schema constraints.