انتقل إلى المحتوى الرئيسي

Request Lifecycle

Understand how an HTTP request flows through the Ever Gauzy API from entry to response.

Overview

Phase 1: Middleware

Express middleware processes the raw request:

MiddlewarePurpose
helmetSecurity headers
corsCORS handling
compressionResponse compression
body-parserJSON body parsing
cookie-parserCookie parsing

Phase 2: Guards

Guards determine if the request is authorized:

GuardOrderPurpose
TenantPermissionGuard1stExtract and validate tenant
PermissionGuard2ndCheck user permissions
RoleGuard3rdCheck user role (optional)
FeatureFlagGuard4thCheck feature availability

Phase 3: Interceptors

Interceptors transform request/response:

InterceptorPurpose
TransformInterceptorStandardize response format
TimeoutInterceptorRequest timeout handling
LazyLoadInterceptorLazy-load relations

Phase 4: Pipes

Pipes validate and transform input:

PipePurpose
ValidationPipeDTO class-validator
UUIDValidationPipeUUID parameter validation
ParseJsonPipeJSON query param parsing

Phase 5: Controller → Service → Repository

The actual business logic execution:

  1. Controller — route handler, delegates to service
  2. Service — business logic, tenant filtering
  3. Repository — database operations (TypeORM/MikroORM)

Phase 6: Response

The response flows back through interceptors for transformation before being sent to the client.

Error Handling

Errors at any phase are caught by the global exception filter: