macro_rules! http_serve {
() => { ... };
}Expand description
This macro is used to create a new instance of HttpServe. 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;
use pluto::http::{RawHttpRequest, RawHttpResponse};
use pluto::http::HttpServe;
#[query]
async fn http_request(req: RawHttpRequest) -> RawHttpResponse {
bootstrap(http_serve!(), req).await
}
#[update]
async fn http_request_update(req: RawHttpRequest) -> RawHttpResponse {
bootstrap(http_serve!(), req).await
}
async fn bootstrap(mut app: HttpServe, req: RawHttpRequest) -> RawHttpResponse {
let router = Router::new();
app.set_router(router);
app.serve(req).await
}