Struct jsonrpc_http_server::ServerBuilder
source · [−]pub struct ServerBuilder<M: Metadata = (), S: Middleware<M> = Noop> { /* private fields */ }Expand description
Convenient JSON-RPC HTTP Server builder.
Implementations
sourceimpl<M: Metadata + Default, S: Middleware<M>> ServerBuilder<M, S>
impl<M: Metadata + Default, S: Middleware<M>> ServerBuilder<M, S>
sourcepub fn new<T>(handler: T) -> Self where
T: Into<MetaIoHandler<M, S>>,
pub fn new<T>(handler: T) -> Self where
T: Into<MetaIoHandler<M, S>>,
Creates new ServerBuilder for given IoHandler.
By default:
- Server is not sending any CORS headers.
- Server is validating
Hostheader.
sourceimpl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S>
impl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S>
sourcepub fn with_meta_extractor<T, E>(handler: T, extractor: E) -> Self where
T: Into<MetaIoHandler<M, S>>,
E: MetaExtractor<M>,
pub fn with_meta_extractor<T, E>(handler: T, extractor: E) -> Self where
T: Into<MetaIoHandler<M, S>>,
E: MetaExtractor<M>,
Creates new ServerBuilder for given IoHandler.
By default:
- Server is not sending any CORS headers.
- Server is validating
Hostheader.
sourcepub fn event_loop_executor(self, executor: TaskExecutor) -> Self
pub fn event_loop_executor(self, executor: TaskExecutor) -> Self
Utilize existing event loop executor to poll RPC results.
Applies only to 1 of the threads. Other threads will spawn their own Event Loops.
sourcepub fn rest_api(self, rest_api: RestApi) -> Self
pub fn rest_api(self, rest_api: RestApi) -> Self
Enable the REST -> RPC converter.
Allows you to invoke RPCs by sending POST /<method>/<param1>/<param2> requests
(with no body). Disabled by default.
sourcepub fn health_api<A, B, T>(self, health_api: T) -> Self where
T: Into<Option<(A, B)>>,
A: Into<String>,
B: Into<String>,
pub fn health_api<A, B, T>(self, health_api: T) -> Self where
T: Into<Option<(A, B)>>,
A: Into<String>,
B: Into<String>,
Enable health endpoint.
Allows you to expose one of the methods under GET /<path>
The method will be invoked with no parameters.
Error returned from the method will be converted to status 500 response.
Expects a tuple with (<path>, <rpc-method-name>).
sourcepub fn keep_alive(self, val: bool) -> Self
pub fn keep_alive(self, val: bool) -> Self
Enables or disables HTTP keep-alive.
Default is true.
sourcepub fn threads(self, threads: usize) -> Self
pub fn threads(self, threads: usize) -> Self
Sets number of threads of the server to run.
Panics when set to 0.
The first thread will use provided Executor instance
and all other threads will use UninitializedExecutor to spawn
a new runtime for futures.
So it’s also possible to run a multi-threaded server by
passing the default tokio::runtime executor to this builder
and setting threads to 1.
sourcepub fn cors(
self,
cors_domains: DomainsValidation<AccessControlAllowOrigin>
) -> Self
pub fn cors(
self,
cors_domains: DomainsValidation<AccessControlAllowOrigin>
) -> Self
Configures a list of allowed CORS origins.
sourcepub fn cors_max_age<T: Into<Option<u32>>>(self, cors_max_age: T) -> Self
pub fn cors_max_age<T: Into<Option<u32>>>(self, cors_max_age: T) -> Self
Configure CORS AccessControlMaxAge header returned.
Informs the client that the CORS preflight request is not necessary for cors_max_age seconds.
Disabled by default.
sourcepub fn cors_allow_headers(
self,
allowed_headers: AccessControlAllowHeaders
) -> Self
pub fn cors_allow_headers(
self,
allowed_headers: AccessControlAllowHeaders
) -> Self
Configure the CORS AccessControlAllowHeaders header which are allowed.
sourcepub fn request_middleware<T: RequestMiddleware>(self, middleware: T) -> Self
pub fn request_middleware<T: RequestMiddleware>(self, middleware: T) -> Self
Configures request middleware
sourcepub fn meta_extractor<T: MetaExtractor<M>>(self, extractor: T) -> Self
pub fn meta_extractor<T: MetaExtractor<M>>(self, extractor: T) -> Self
Configures metadata extractor
sourcepub fn allow_only_bind_host(self) -> Self
pub fn allow_only_bind_host(self) -> Self
Allow connections only with Host header set to binding address.
sourcepub fn allowed_hosts(self, allowed_hosts: DomainsValidation<Host>) -> Self
pub fn allowed_hosts(self, allowed_hosts: DomainsValidation<Host>) -> Self
Specify a list of valid Host headers. Binding address is allowed automatically.
sourcepub fn max_request_body_size(self, val: usize) -> Self
pub fn max_request_body_size(self, val: usize) -> Self
Sets the maximum size of a request body in bytes (default is 5 MiB).
sourcepub fn start_http(self, addr: &SocketAddr) -> Result<Server>
pub fn start_http(self, addr: &SocketAddr) -> Result<Server>
Start this JSON-RPC HTTP server trying to bind to specified SocketAddr.
Auto Trait Implementations
impl<M = (), S = Noop> !RefUnwindSafe for ServerBuilder<M, S>
impl<M, S> Send for ServerBuilder<M, S>
impl<M, S> Sync for ServerBuilder<M, S>
impl<M, S> Unpin for ServerBuilder<M, S>
impl<M = (), S = Noop> !UnwindSafe for ServerBuilder<M, S>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more