http_serve

Macro http_serve 

Source
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
}