Skip to main content

RestServer

Struct RestServer 

Source
pub struct RestServer { /* private fields */ }
Expand description

Assembles and runs an Actix server with rust-zero’s standard production middleware.

Implementations§

Source§

impl RestServer

Source

pub fn new(config: RestServerConfig) -> Result<Self, RestServerConfigError>

Source

pub fn with_metrics( config: RestServerConfig, metrics: Arc<Metrics>, ) -> Result<Self, RestServerConfigError>

Source

pub fn with_static_assets(self, static_assets: StaticAssets) -> Self

Installs an opt-in static-directory and/or embedded-asset fallback.

Source

pub fn with_route_middleware<M>( self, name: impl Into<String>, middleware: M, ) -> Result<Self, RestServerConfigError>
where M: RouteMiddleware,

Registers application middleware referenced by declarative route groups.

Source

pub fn with_response_policy(self, response_policy: ResponsePolicy) -> Self

Installs the response policy as Actix application data for all registered handlers.

Source

pub fn with_content_encryption( self, content_encryption: ContentEncryption, ) -> Self

Enables authenticated request decryption and buffered response encryption.

Install this only for APIs whose clients implement the versioned content-encryption wire format. Streaming routes such as SSE must remain on a server without this middleware.

Source

pub fn config(&self) -> &RestServerConfig

Source

pub fn metrics(&self) -> Arc<Metrics>

Source

pub fn response_policy(&self) -> &ResponsePolicy

Source

pub async fn serverless_handler<F>( &self, configure: F, ) -> Result<ServerlessHandler, RestServerConfigError>
where F: FnOnce(&mut ServiceConfig) + 'static,

Builds a reusable socket-free handler with the same routes, policies, middleware, and static fallback as RestServer::run.

Source

pub fn run<F>(&self, configure: F) -> Result<Server>
where F: Fn(&mut ServiceConfig) + Clone + Send + 'static,

Binds the configured listener and installs the standard stack around application routes.

The configure callback is cloned per Actix worker and can register ordinary routes, resources, and scoped route groups.

Source

pub fn run_on<F>(&self, listener: TcpListener, configure: F) -> Result<Server>
where F: Fn(&mut ServiceConfig) + Clone + Send + 'static,

Runs the configured stack on an existing listener.

Supplying the listener is useful for socket activation and lets tests reserve an ephemeral port without a bind race.

Source

pub async fn serve_until<C, F>(&self, configure: C, shutdown: F) -> Result<()>
where C: Fn(&mut ServiceConfig) + Clone + Send + 'static, F: Future<Output = ()>,

Serves until the supplied shutdown signal resolves, then gracefully drains requests.

Source

pub async fn serve_on_until<C, F>( &self, listener: TcpListener, configure: C, shutdown: F, ) -> Result<()>
where C: Fn(&mut ServiceConfig) + Clone + Send + 'static, F: Future<Output = ()>,

Listener-based variant of RestServer::serve_until.

Trait Implementations§

Source§

impl Clone for RestServer

Source§

fn clone(&self) -> RestServer

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more