Skip to main content

http_middleware/
http_middleware.rs

1use susydev_jsonrpc_http_server::susydev_jsonrpc_core::futures;
2use susydev_jsonrpc_http_server::susydev_jsonrpc_core::{IoHandler, Value};
3use susydev_jsonrpc_http_server::{hyper, AccessControlAllowOrigin, DomainsValidation, Response, RestApi, ServerBuilder};
4
5fn main() {
6	let mut io = IoHandler::default();
7	io.add_method("say_hello", |_params| {
8		futures::finished(Value::String("hello".to_owned()))
9	});
10
11	let server = ServerBuilder::new(io)
12		.cors(DomainsValidation::AllowOnly(vec![AccessControlAllowOrigin::Null]))
13		.request_middleware(|request: hyper::Request<hyper::Body>| {
14			if request.uri() == "/status" {
15				Response::ok("Server running OK.").into()
16			} else {
17				request.into()
18			}
19		})
20		.rest_api(RestApi::Unsecure)
21		.start_http(&"127.0.0.1:3030".parse().unwrap())
22		.expect("Unable to start RPC server");
23
24	server.wait();
25}