pub struct BevyReqwest<'w, 's> { /* private fields */ }Expand description
Systemparam to have a shorthand for creating http calls in systems
Implementations§
Source§impl<'w, 's> BevyReqwest<'w, 's>
impl<'w, 's> BevyReqwest<'w, 's>
Sourcepub fn send(&mut self, req: Request) -> BevyReqwestBuilder<'_>
pub fn send(&mut self, req: Request) -> BevyReqwestBuilder<'_>
Starts sending and processing the supplied reqwest::Request
then use the BevyReqwestBuilder to add handlers for responses and errors
Examples found in repository?
15fn send_requests(mut client: BevyReqwest) {
16 let url = "https://jsonplaceholder.typicode.com/posts";
17 let body = Post {
18 title: "hello".into(),
19 body: "world".into(),
20 user_id: 1,
21 };
22 let req = client.post(url).json(&body).build().unwrap();
23 client
24 .send(req)
25 .on_response(|req: On<ReqwestResponseEvent>| {
26 let req = req.event();
27 let res = req.as_str();
28 bevy::log::info!("return data: {res:?}");
29 });
30}More examples
14fn send_requests(mut client: BevyReqwest) {
15 let url = "https://bored-api.appbrewery.com/random";
16
17 // use regular reqwest http calls, then poll them to completion.
18 let reqwest_request = client.get(url).build().unwrap();
19
20 client
21 // Sends the created http request
22 .send(reqwest_request)
23 // The response from the http request can be reached using an observersystem
24 .on_json_response(|trigger: On<JsonResponse<Bored>>| {
25 let data: &Bored = &trigger.event().data;
26 // let headers = req.response_headers();
27 bevy::log::info!("data: {data:?}");
28 })
29 // In case of request error, it can be reached using an observersystem
30 .on_error(|trigger: On<ReqwestErrorEvent>| {
31 let e = &trigger.event().error;
32 bevy::log::info!("error: {e:?}");
33 });
34}13fn send_requests(mut client: BevyReqwest) {
14 let url = "https://bored-api.appbrewery.com/random";
15
16 // use regular reqwest http calls, then poll them to completion.
17 let reqwest_request = client.get(url).build().unwrap();
18
19 client
20 // Sends the created http request
21 .send(reqwest_request)
22 // The response from the http request can be reached using an observersystem,
23 // where the only requirement is that the first parameter in the system is the specific Trigger type
24 // the rest is the same as a regular system
25 .on_response(
26 |trigger: On<ReqwestResponseEvent>, mut history: ResMut<History>| {
27 let response = trigger.event();
28 let data = response.as_str();
29 let status = response.status();
30 // let headers = req.response_headers();
31 bevy::log::info!("code: {status}, data: {data:?}");
32 if let Ok(data) = data {
33 history.responses.push(format!("OK: {data}"));
34 }
35 },
36 )
37 // In case of request error, it can be reached using an observersystem as well
38 .on_error(
39 |trigger: On<ReqwestErrorEvent>, mut history: ResMut<History>| {
40 let e = &trigger.event().entity;
41 bevy::log::info!("error: {e:?}");
42 history.responses.push(format!("ERROR: {e:?}"));
43 },
44 );
45}Sourcepub fn send_using_entity(
&mut self,
entity: Entity,
req: Request,
) -> Result<BevyReqwestBuilder<'_>, Box<dyn Error>>
pub fn send_using_entity( &mut self, entity: Entity, req: Request, ) -> Result<BevyReqwestBuilder<'_>, Box<dyn Error>>
Starts sending and processing the supplied reqwest::Request on the supplied Entity if it exists
and then use the BevyReqwestBuilder to add handlers for responses and errors
Methods from Deref<Target = Client>§
Sourcepub fn get<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn get<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a GET request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Examples found in repository?
14fn send_requests(mut client: BevyReqwest) {
15 let url = "https://bored-api.appbrewery.com/random";
16
17 // use regular reqwest http calls, then poll them to completion.
18 let reqwest_request = client.get(url).build().unwrap();
19
20 client
21 // Sends the created http request
22 .send(reqwest_request)
23 // The response from the http request can be reached using an observersystem
24 .on_json_response(|trigger: On<JsonResponse<Bored>>| {
25 let data: &Bored = &trigger.event().data;
26 // let headers = req.response_headers();
27 bevy::log::info!("data: {data:?}");
28 })
29 // In case of request error, it can be reached using an observersystem
30 .on_error(|trigger: On<ReqwestErrorEvent>| {
31 let e = &trigger.event().error;
32 bevy::log::info!("error: {e:?}");
33 });
34}More examples
13fn send_requests(mut client: BevyReqwest) {
14 let url = "https://bored-api.appbrewery.com/random";
15
16 // use regular reqwest http calls, then poll them to completion.
17 let reqwest_request = client.get(url).build().unwrap();
18
19 client
20 // Sends the created http request
21 .send(reqwest_request)
22 // The response from the http request can be reached using an observersystem,
23 // where the only requirement is that the first parameter in the system is the specific Trigger type
24 // the rest is the same as a regular system
25 .on_response(
26 |trigger: On<ReqwestResponseEvent>, mut history: ResMut<History>| {
27 let response = trigger.event();
28 let data = response.as_str();
29 let status = response.status();
30 // let headers = req.response_headers();
31 bevy::log::info!("code: {status}, data: {data:?}");
32 if let Ok(data) = data {
33 history.responses.push(format!("OK: {data}"));
34 }
35 },
36 )
37 // In case of request error, it can be reached using an observersystem as well
38 .on_error(
39 |trigger: On<ReqwestErrorEvent>, mut history: ResMut<History>| {
40 let e = &trigger.event().entity;
41 bevy::log::info!("error: {e:?}");
42 history.responses.push(format!("ERROR: {e:?}"));
43 },
44 );
45}Sourcepub fn post<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn post<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a POST request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Examples found in repository?
15fn send_requests(mut client: BevyReqwest) {
16 let url = "https://jsonplaceholder.typicode.com/posts";
17 let body = Post {
18 title: "hello".into(),
19 body: "world".into(),
20 user_id: 1,
21 };
22 let req = client.post(url).json(&body).build().unwrap();
23 client
24 .send(req)
25 .on_response(|req: On<ReqwestResponseEvent>| {
26 let req = req.event();
27 let res = req.as_str();
28 bevy::log::info!("return data: {res:?}");
29 });
30}Sourcepub fn put<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn put<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a PUT request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Sourcepub fn patch<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn patch<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a PATCH request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Sourcepub fn delete<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn delete<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a DELETE request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Sourcepub fn head<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn head<U>(&self, url: U) -> RequestBuilderwhere
U: IntoUrl,
Convenience method to make a HEAD request to a URL.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Sourcepub fn request<U>(&self, method: Method, url: U) -> RequestBuilderwhere
U: IntoUrl,
pub fn request<U>(&self, method: Method, url: U) -> RequestBuilderwhere
U: IntoUrl,
Start building a Request with the Method and Url.
Returns a RequestBuilder, which will allow setting headers and
the request body before sending.
§Errors
This method fails whenever the supplied Url cannot be parsed.
Sourcepub fn execute(
&self,
request: Request,
) -> impl Future<Output = Result<Response, Error>>
pub fn execute( &self, request: Request, ) -> impl Future<Output = Result<Response, Error>>
Executes a Request.
A Request can be built manually with Request::new() or obtained
from a RequestBuilder with RequestBuilder::build().
You should prefer to use the RequestBuilder and
RequestBuilder::send().
§Errors
This method fails if there was an error while sending request, redirect loop was detected or redirect limit was exhausted.
Trait Implementations§
Source§impl<'w, 's> Deref for BevyReqwest<'w, 's>
impl<'w, 's> Deref for BevyReqwest<'w, 's>
Source§impl SystemParam for BevyReqwest<'_, '_>
impl SystemParam for BevyReqwest<'_, '_>
Source§type Item<'w, 's> = BevyReqwest<'w, 's>
type Item<'w, 's> = BevyReqwest<'w, 's>
Self, instantiated with new lifetimes. Read moreSource§fn init_access(
state: &Self::State,
system_meta: &mut SystemMeta,
component_access_set: &mut FilteredAccessSet,
world: &mut World,
)
fn init_access( state: &Self::State, system_meta: &mut SystemMeta, component_access_set: &mut FilteredAccessSet, world: &mut World, )
World access used by this SystemParamSource§fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
SystemParam’s state.
This is used to apply Commands during ApplyDeferred.Source§fn queue(
state: &mut Self::State,
system_meta: &SystemMeta,
world: DeferredWorld<'_>,
)
fn queue( state: &mut Self::State, system_meta: &SystemMeta, world: DeferredWorld<'_>, )
ApplyDeferred.Source§unsafe fn validate_param<'w, 's>(
state: &'s mut Self::State,
_system_meta: &SystemMeta,
_world: UnsafeWorldCell<'w>,
) -> Result<(), SystemParamValidationError>
unsafe fn validate_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, ) -> Result<(), SystemParamValidationError>
Source§unsafe fn get_param<'w, 's>(
state: &'s mut Self::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick,
) -> Self::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick, ) -> Self::Item<'w, 's>
SystemParamFunction. Read moreimpl<'w, 's> ReadOnlySystemParam for BevyReqwest<'w, 's>
Auto Trait Implementations§
impl<'w, 's> Freeze for BevyReqwest<'w, 's>
impl<'w, 's> !RefUnwindSafe for BevyReqwest<'w, 's>
impl<'w, 's> Send for BevyReqwest<'w, 's>
impl<'w, 's> Sync for BevyReqwest<'w, 's>
impl<'w, 's> Unpin for BevyReqwest<'w, 's>
impl<'w, 's> !UnwindSafe for BevyReqwest<'w, 's>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more