pub struct ReqwestClient(pub Client);Expand description
Wrapper around the ReqwestClient, that when inserted as a resource will start connection pools towards the hosts, and also allows all the configuration from the ReqwestLibrary such as setting default headers etc to be used inside the bevy application
Tuple Fields§
§0: ClientMethods 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 Default for ReqwestClient
impl Default for ReqwestClient
Source§impl Deref for ReqwestClient
impl Deref for ReqwestClient
Source§impl DerefMut for ReqwestClient
impl DerefMut for ReqwestClient
impl Resource for ReqwestClient
Auto Trait Implementations§
impl Freeze for ReqwestClient
impl !RefUnwindSafe for ReqwestClient
impl Send for ReqwestClient
impl Sync for ReqwestClient
impl Unpin for ReqwestClient
impl !UnwindSafe for ReqwestClient
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> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
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