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