[−][src]Struct yew_stdweb::services::FetchService
A service to fetch resources.
Implementations
impl FetchService
[src]
pub fn fetch<IN, OUT: 'static>(
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Text>,
OUT: From<Text>,
[src]
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Text>,
OUT: From<Text>,
Sends a request to a remote server given a Request object and a callback function to convert a Response object into a loop's message.
You may use a Request builder to build your request declaratively as on the following examples:
let post_request = Request::post("https://my.api/v1/resource") .header("Content-Type", "application/json") .body(Json(&json!({"foo": "bar"}))) .expect("Failed to build request."); let get_request = Request::get("https://my.api/v1/resource") .body(Nothing) .expect("Failed to build request.");
The callback function can build a loop message by passing or analyzing the response body and metadata.
let task = FetchService::fetch( post_request, link.callback(|response: Response<Result<String, anyhow::Error>>| { if response.status().is_success() { Msg::Noop } else { Msg::Error } }), );
For a full example, you can specify that the response must be in the JSON format, and be a specific serialized data type. If the mesage isn't Json, or isn't the specified data type, then you will get a message indicating failure.
#[derive(Deserialize)] struct Data { value: String } let get_request = Request::get("/thing").body(Nothing).unwrap(); let callback = link.callback(|response: Response<Json<Result<Data, anyhow::Error>>>| { if let (meta, Json(Ok(body))) = response.into_parts() { if meta.status.is_success() { return Msg::FetchResourceComplete(body); } } Msg::FetchResourceFailed }); let task = FetchService::fetch(get_request, callback);
pub fn fetch_with_options<IN, OUT: 'static>(
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Text>,
OUT: From<Text>,
[src]
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Text>,
OUT: From<Text>,
fetch
with provided FetchOptions
object.
Use it if you need to send cookies with a request:
let request = fetch::Request::get("/path/") .body(Nothing) .unwrap(); let options = FetchOptions { credentials: Some(Credentials::SameOrigin), ..FetchOptions::default() }; let task = FetchService::fetch_with_options(request, options, callback);
pub fn fetch_binary<IN, OUT: 'static>(
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Binary>,
OUT: From<Binary>,
[src]
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Binary>,
OUT: From<Binary>,
Fetch the data in binary format.
pub fn fetch_binary_with_options<IN, OUT: 'static>(
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Binary>,
OUT: From<Binary>,
[src]
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, &'static str> where
IN: Into<Binary>,
OUT: From<Binary>,
Fetch the data in binary format using the provided request options.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for FetchService
impl Send for FetchService
impl Sync for FetchService
impl Unpin for FetchService
impl UnwindSafe for FetchService
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
[src]
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,