pub struct HttpSubsystem { /* private fields */ }Expand description
HTTP server subsystem.
Manages an Axum-based HTTP server with support for:
- Graceful startup and shutdown
- Health monitoring
§Example
ⓘ
let state = AppState::new(pool, engine, QueryConfig::default(), RequestInterceptorChain::empty());
let mut http = HttpSubsystem::new(
"0.0.0.0:8090".to_string(),
state,
);
http.start()?;
// Server is now accepting connections
http.shutdown()?;
// Server has gracefully stoppedImplementations§
Source§impl HttpSubsystem
impl HttpSubsystem
Sourcepub fn new(
bind_addr: Option<String>,
admin_bind_addr: Option<String>,
state: AppState,
runtime: SharedRuntime,
) -> Self
pub fn new( bind_addr: Option<String>, admin_bind_addr: Option<String>, state: AppState, runtime: SharedRuntime, ) -> Self
Create a new HTTP subsystem.
§Arguments
bind_addr- Address and port to bind to (e.g., “0.0.0.0:8090”)state- Shared application state with engine and configruntime- Shared runtime
Sourcepub fn local_addr(&self) -> Option<SocketAddr>
pub fn local_addr(&self) -> Option<SocketAddr>
Get the actual bound address (available after start).
Sourcepub fn admin_local_addr(&self) -> Option<SocketAddr>
pub fn admin_local_addr(&self) -> Option<SocketAddr>
Get the actual bound address for the admin server (available after start).
Sourcepub fn admin_port(&self) -> Option<u16>
pub fn admin_port(&self) -> Option<u16>
Get the actual bound port for the admin server (available after start).
Trait Implementations§
Source§impl HasVersion for HttpSubsystem
impl HasVersion for HttpSubsystem
Source§fn version(&self) -> SystemVersion
fn version(&self) -> SystemVersion
Returns the version information for this component
Source§impl Subsystem for HttpSubsystem
impl Subsystem for HttpSubsystem
Source§fn is_running(&self) -> bool
fn is_running(&self) -> bool
Check if the subsystem is currently running
Source§fn health_status(&self) -> HealthStatus
fn health_status(&self) -> HealthStatus
Get the current health status of the subsystem Read more
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Get a mutable reference to self as Any for downcasting
Auto Trait Implementations§
impl !Freeze for HttpSubsystem
impl !RefUnwindSafe for HttpSubsystem
impl Send for HttpSubsystem
impl Sync for HttpSubsystem
impl Unpin for HttpSubsystem
impl UnsafeUnpin for HttpSubsystem
impl !UnwindSafe for HttpSubsystem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request