Use asynchronous api requests in conjunction with yew's suspense feature
```rust
fn App() -> Html {
html! {
fn AsyncComponent() -> HtmlResult { let data = use_api(requests::Fetch { id: 0 })?;
match data {
Ok(json) => Ok(html! { {format!("{:#?}", json)} }),
Err(_) => Ok(html! { {"An error occured"} })
}
}
mod requests { use yewapihook::prelude::*;
type ApiResult = anyhow::Result<serde_json::Value>;
#[derive(Clone, Debug, PartialEq)]
pub struct Fetch {
pub id: u64
}
#[async_trait(?Send)]
impl Request for Fetch {
type Error = anyhow::Error;
type Output = serde_json::Value;
async fn run(&self) -> ApiResult {
// Use your favorite http or whatever implementation
get(format!("/entity/{}", self.id)).await
}
}
} ```