macro_rules! http_serve_router {
($arg:expr) => { ... };
}Expand description
This macro is used to create a new instance of HttpServe with given router. It is used in the ‘http_request’ and ‘http_request_update’ function of the canister. This macro handles routing from not upgradable request to upgradable request.
§Example
use ic_cdk::{query, update};
use pluto::router::Router;
use pluto::http_serve_router;
use pluto::http::{RawHttpRequest, RawHttpResponse};
use pluto::http::HttpServe;
#[query]
async fn http_request(req: RawHttpRequest) -> RawHttpResponse {
let router = setup_router();
http_serve_router!(router).serve(req).await
}
#[update]
async fn http_request_update(req: RawHttpRequest) -> RawHttpResponse {
let router = setup_router();
http_serve_router!(router).serve(req).await
}
fn setup_router() -> Router {
Router::new()
}