pub mod bootstrap;
pub mod config;
pub mod controller;
pub mod errors;
pub mod foundation;
pub mod handlers;
pub mod logging;
pub mod middleware;
pub mod request;
pub mod response;
pub mod routing;
pub mod server;
pub mod testing;
pub mod websocket;
#[cfg(feature = "auth")]
pub mod auth;
pub use bootstrap::{AppBootstrap, AppBootstrapper, BootstrapError, BootstrapResult, create_bootstrapper};
pub use config::HttpConfig;
pub use errors::{HttpError, HttpResult, VersionedError, VersionedErrorBuilder, VersionedErrorExt};
pub use server::Server;
pub use foundation::{BoxFuture, GenericHandler, IntoElifResponse, RequestExtractor};
pub use routing::{
header_versioned_router,
path_versioned_router,
versioned_router,
ElifRouter,
GroupBuilder,
HttpMethod,
ParamError,
ParamType,
PathParams,
RouteBuilder,
RouteGroup,
RouteInfo,
RouteParam as RoutingRouteParam,
RouteRegistry,
VersionedRouteBuilder,
VersionedRouter,
};
pub use request::{ElifMethod, ElifPath, ElifQuery, ElifRequest, ElifState};
pub use response::{
ElifHeaderMap, ElifHeaderName, ElifHeaderValue, ElifResponse, ElifStatusCode, ResponseBody,
};
pub use response::{ApiResponse, ElifJson, JsonError, JsonResponse, ValidationErrors};
pub use middleware::{
body_limit::{BodyLimitConfig, BodyLimitInfo, BodyLimitMiddleware},
enhanced_logging::{
EnhancedLoggingMiddleware, LoggingConfig as MiddlewareLoggingConfig, RequestContext,
},
error_handler::{
error_handler, error_handler_with_config, ErrorHandlerConfig, ErrorHandlerMiddleware,
},
logging::LoggingMiddleware as LegacyLoggingMiddleware,
timeout::{apply_timeout, TimeoutConfig, TimeoutInfo, TimeoutMiddleware},
timing::{format_duration, RequestStartTime, TimingMiddleware},
tracing::{RequestMetadata, TracingConfig, TracingMiddleware},
v2::{
LoggingMiddleware, Middleware, MiddlewarePipelineV2 as MiddlewarePipeline, Next,
SimpleAuthMiddleware,
},
versioning::{
default_versioning_middleware, versioning_layer, versioning_middleware, ApiVersion,
RequestVersionExt, VersionInfo, VersionStrategy, VersioningConfig, VersioningLayer,
VersioningMiddleware, VersioningService,
},
};
#[cfg(feature = "auth")]
pub use auth::{AuthMiddleware, RequestAuthExt};
pub use logging::{init_logging, log_shutdown_info, log_startup_info, structured, LoggingConfig};
pub use logging::context::LoggingContext;
pub use controller::{
BaseController, Controller, ControllerRoute, ElifController, RouteParam as ControllerRouteParam,
};
pub use controller::pagination::{PaginationMeta, QueryParams};
#[cfg(feature = "derive")]
pub use elif_http_derive::{
body, controller, delete, get, group, head, middleware, options, param, patch, post, put,
resource, routes,
};
pub use handlers::{elif_handler, ElifHandler};
pub use testing::{
create_test_container, get_test_port, test_error_handler, test_handler, test_http_config,
test_json_handler, test_socket_addr, ErrorAssertions, HttpAssertions, TestContainerBuilder,
TestQuery, TestServerBuilder, TestUser,
};
pub use websocket::{
ConnectionEvent,
ConnectionId,
ConnectionRegistry,
ConnectionState,
MessageType,
SimpleWebSocketHandler,
WebSocketConfig,
WebSocketConnection,
WebSocketError,
WebSocketHandler,
WebSocketMessage,
WebSocketResult,
WebSocketServer,
WebSocketUpgrade,
};
pub use errors::HttpError as ElifError;
pub use response::ElifJson as Json;