Crates.io | wasm_request |
lib.rs | wasm_request |
version | 0.1.1 |
source | src |
created_at | 2021-08-20 00:28:37.350535 |
updated_at | 2021-08-20 18:31:47.552435 |
description | Create http request with rustwasm saving boilerplate |
homepage | https://github.com/dancespiele/wasm_request |
repository | https://github.com/dancespiele/wasm_request |
max_upload_size | |
id | 439799 |
size | 14,901 |
Create http request with rustwasm saving boilerplate
Cargo.toml
wasm_request = '0.1'
#[derive(Serialize, Deserialize, Debug, Clone)]
struct Eur {
eur: f64,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
struct CurrentPrice {
current_price: Eur,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
struct Price {
market_data: CurrentPrice,
}
async fn get_token_price() -> Price {
let options = get_options::<Price>(
"https://api.coingecko.com/api/v3/coins/1million-token",
Method::Get,
None,
None,
);
let price_1mt_token: Price = request(options).await.unwrap().into_serde().unwrap();
price_1mt_token
}
use wasm_request::{get_options, request, Method, DataType};
#[derive(Serialize, Deserialize, Debug)]
pub struct User {
pub email: String,
pub username: String,
pub password: String,
}
async fn create_user() {
let user = User {
email: "test@example.com".to_string(),
password: "test43214".to_string(),
}
let options = get_options::<User>(
"https://api.sport-example.com/login",
Method::Post,
None,
Some(DataType::Json(user)),
);
request(options).await.unwrap().into_serde().unwrap();
}
use wasm_request::{get_options, request, Method, DataType, get_defualt_headers};
use web_sys::FormData;
async fn add_form() {
let form = FormData::new().unwrap();
form.append_with_str("name", "Lee").unwrap();
form.append_with_str("email", "test.example@gmail.com").unwrap();
let headers = get_defualt_headers();
headers.delete("Content-Type").unwrap();
let options = get_options::<()>(
"https://api.sport-example.com/user",
Method::Post,
None,
Some(DataType::Form(form)),
);
request(options).await.unwrap().into_serde().unwrap();
}
set_storage("food", "ramen");
let food = get_storage("food").unwrap();
delete_storage("food");
wasm-pack test --headless --chrome --firefox
If you like Yew Styles, help me supporting the project:
Wasm Request is MIT licensed