4 releases (2 breaking)
0.3.0 | Jul 21, 2024 |
---|---|
0.2.1 | Feb 18, 2024 |
0.2.0 | Feb 17, 2024 |
0.1.0 | Feb 12, 2024 |
#1210 in Game dev
37KB
288 lines
bevy_ehttp
A ehttp Bevy Plugin that works both on native and on WASM.
Simple request will invoke RequestCompleted(pub Result<Response, String>)
event once completed.
There is also option to call typed request that will allow to deserialize response to given type by using RequestBundle<T>
. More details available in typed.rs example.
Example
use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_ehttp::prelude::*;
fn main() {
App::new()
.add_plugins((MinimalPlugins, HttpPlugin))
.add_systems(Update, handle_response)
.add_systems(
Update,
send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
)
.run()
}
fn send_request(mut commands: Commands) {
let req = ehttp::Request::get("https://api.ipify.org?format=json");
commands.spawn(HttpRequest(req));
}
fn handle_response(mut requests: EventReader<RequestCompleted>) {
for request in &mut requests.read() {
match &**request {
Ok(response) => println!("response: {:?}", response.text()),
Err(e) => println!("response error: {:?}", e),
}
}
}
Thanks
Big thanks to the creators of the Bevy Engine and to the foxzool user for creating bevy_http_client that this plugin is based on.
License
bevy_ehttp
is dual-licensed under MIT and Apache 2.0 at your option.
Bevy compatibility table
Bevy version | Crate version |
---|---|
0.14 | 0.3 |
0.13 | 0.2 |
0.12 | 0.1 |
Dependencies
~36–73MB
~1.5M SLoC