lmrc_http_common/
lib.rs

1//! # lmrc-http-common
2//!
3//! Common HTTP utilities and patterns for LMRC Stack applications.
4//!
5//! This library provides reusable components for building Axum-based HTTP services:
6//! - Standard error types and response wrappers
7//! - Reusable middleware (CORS, logging, tracing)
8//! - Authentication utilities (JWT, session management, password hashing)
9//! - Configuration patterns
10//!
11//! ## Features
12//!
13//! - `auth` (default): Enable authentication utilities (JWT, bcrypt, sessions)
14//! - `validation` (default): Enable request validation helpers
15//!
16//! ## Example
17//!
18//! ```rust
19//! use lmrc_http_common::{
20//!     error::{HttpError, HttpResult},
21//!     response::SuccessResponse,
22//! };
23//! use axum::{Json, response::IntoResponse};
24//!
25//! async fn handler() -> HttpResult<impl IntoResponse> {
26//!     let data = vec!["item1", "item2"];
27//!     Ok(SuccessResponse::new(data))
28//! }
29//! ```
30
31pub mod error;
32pub mod response;
33pub mod middleware;
34
35#[cfg(feature = "auth")]
36pub mod auth;
37
38// Re-export commonly used types
39pub use error::{ErrorResponse, HttpError, HttpResult};
40pub use response::{
41    CreatedResponse, EmptyResponse, PaginatedResponse, PaginationMeta, SuccessResponse,
42};