Expand description
§My Canister Frontend
Frontend asset processing library for Internet Computer Canister Dapps.
§Usage
Single canister example:
ⓘ
use ic_cdk::{init, query};
use ic_http_certification::{HttpRequest, HttpResponse};
use include_dir::{include_dir, Dir};
use my_canister_frontend::setup_frontend;
static ASSETS: Dir = include_dir!("$CARGO_MANIFEST_DIR/../dapp-frontend/dist");
#[init]
fn init() {
setup_frontend(&ASSETS);
}
#[query]
fn http_request(req: HttpRequest) -> HttpResponse {
my_canister_frontend::http_request(req)
}
§Features
- Implements internal AssetRouter for managing frontend assets
- Embeds assets provided a
Dir
viainclude_dir
- Automatic MIME type detection using
mime_guess
index.html
auto-configured as fallback for/
- Certification using
ic-asset-certification
- Exposes
with_asset_router
andwith_asset_router_mut
for access to the asset router, see example below. - Exposes
asset_router_configs
if you want to implement your own asset router, see this example.
§Usage with my_canister_dashboard
ⓘ
use ic_cdk::{init, query};
use ic_http_certification::{HttpRequest, HttpResponse};
use include_dir::{include_dir, Dir};
use my_canister_dashboard::setup_dashboard_assets;
use my_canister_frontend::setup_frontend;
use my_canister_frontend::asset_router::with_asset_router_mut;
static ASSETS: Dir = include_dir!("$CARGO_MANIFEST_DIR/../dapp-frontend/dist");
#[init]
fn init() {
setup_frontend(&ASSETS);
// Setup dashboard in internal asset router
with_asset_router_mut(|router| {
setup_dashboard_assets(
router,
Some(vec![
"https://mycanister.app".to_string(),
]),
);
});
}
#[query]
fn http_request(req: HttpRequest) -> HttpResponse {
my_canister_frontend::http_request(req)
}
§License
MIT
Modules§
Functions§
- asset_
router_ configs Deprecated - Deprecated: use
my_canister_frontend::asset_router::asset_router_configs
instead. - http_
request - Serve certified frontend assets. Any other additional assets you may have added to the asset router, like for example dashboard assets, will also be served.
- setup_
frontend - Initialize and certify your Canister Dapp frontend assets.