Components
This page provides detailed information about the key components of the Image Resize Service.
API Module
The API module (src/modules/api/
) handles the HTTP API interface and parameter validation.
Key Files:
mod.rs
: Module definitionhandler.rs
: Request handlersresize.rs
: Resize API implementation
The API module is responsible for: - Parsing and validating request parameters - Converting API requests to service calls - Formatting service responses as API responses - Error handling and response codes
Router Module
The Router module (src/modules/router/
) manages HTTP routing and middleware.
Key Files:
mod.rs
: Module definitionrouter.rs
: Route definitionsmiddlewares.rs
: HTTP middleware implementations
The Router module is responsible for: - Defining API routes - Applying middleware (logging, tracing, etc.) - Request/response handling
Services
Resize Service
The Resize Service (src/services/resize/
) handles image resizing operations.
Key Files:
mod.rs
: Module definitionhandler.rs
: Resize implementation
The Resize Service is responsible for: - Processing resize parameters - Applying resize operations to images - Handling different resize modes (fit, cover, etc.)
Image Service
The Image Service (src/services/image/
) handles image processing and manipulation.
Key Files:
mod.rs
: Module definitionhandler.rs
: Image processing implementation
The Image Service is responsible for: - Loading images from various sources - Image format conversion - Image quality adjustments
Storage Service
The Storage Service (src/services/storage/
) provides a unified interface for different storage backends.
Key Files:
mod.rs
: Module definitioncore.rs
: Storage trait definitionshandler.rs
: Storage implementations3_handler.rs
: S3 storage implementationlocal_fs_handler.rs
: Local filesystem implementationin_memory_handler.rs
: In-memory storage implementation
The Storage Service is responsible for: - Storing and retrieving images - Managing storage backends - Handling storage errors
Cache Service
The Cache Service (src/services/cache/
) provides caching functionality.
Key Files:
mod.rs
: Module definitionhandler.rs
: Cache implementation
The Cache Service is responsible for: - Caching processed images - Cache invalidation - Cache hit/miss metrics
Health Service
The Health Service (src/services/health/
) monitors system health.
Key Files:
mod.rs
: Module definitionhandler.rs
: Health check implementation
The Health Service is responsible for: - Providing health check endpoints - Monitoring system components - Reporting system status
Metrics Service
The Metrics Service (src/services/metrics/
) collects and exposes metrics.
Key Files:
mod.rs
: Module definitionhandler.rs
: Metrics implementation
The Metrics Service is responsible for: - Collecting performance metrics - Exposing Prometheus-compatible metrics - Monitoring system usage
Utility Modules
Tracer Module
The Tracer Module (src/modules/tracer/
) provides distributed tracing functionality.
Key Files:
mod.rs
: Module definitioninit.rs
: Tracer initialization
Utils Module
The Utils Module (src/modules/utils/
) provides utility functions.
Key Files:
mod.rs
: Module definitiondate.rs
: Date/time utilitieserr.rs
: Error handling utilities
Models
The Models (src/models/
) define data structures used throughout the application.
Key Files:
mod.rs
: Module definitionparams.rs
: API parameter definitions