Skip to content

Base Conventions

  • Versioned root is /api/v1.
  • Health endpoint is outside versioning: GET /health.
  • Protected modules use Authorization: Bearer <jwt>.
  • Auth middleware location: backend/src/Presentation/Middlewares/AuthMiddleware.ts.
  • Request payload validation runs with Zod middleware before controller logic.
  • Validation middleware: backend/src/Presentation/Middlewares/validationMiddleware.ts.

Errors are serialized in a stable envelope:

{
"code": "VALIDATION_FAILED",
"message": "Request validation failed",
"error": "walletId is required"
}

Status and default message mapping source:

  • backend/src/Shared/Errors.ts
  • backend/src/Presentation/Middlewares/errorsMiddleware.ts
  • Global limiter applies to the app.
  • Auth limiter applies to auth routes.
  • Config source: backend/src/Presentation/Middlewares/rateLimiter.ts.