Skip to main content

Module http

Module http 

Source
Expand description

HTTP client abstraction.

This crate ships no HTTP implementation. You provide one by implementing HttpClient. This lets you plug in whatever transport fits your platform:

  • reqwest for native and browser-WASM
  • ic_cdk::api::management_canister::http_request for ICP canisters
  • A mock client for tests

§Example (ICP)

use irig::http::{HttpClient, HttpRequest, HttpResponse};

pub struct IcpHttpClient;

impl HttpClient for IcpHttpClient {
    type Error = String;

    async fn post(&self, req: HttpRequest) -> Result<HttpResponse, Self::Error> {
        // Build ic_cdk http_request args from `req`, call the management
        // canister, then map the response back to HttpResponse.
        todo!()
    }
}

Structs§

HttpError
Error wrapping an HttpClient transport failure.
HttpRequest
A minimal HTTP POST request.
HttpResponse
A minimal HTTP response.

Traits§

HttpClient
Implement this trait to provide an HTTP backend.