[−][src]Struct yew::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, Error> where
IN: Into<Text>,
OUT: From<Text>,
[src]
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, Error> where
IN: Into<Text>,
OUT: From<Text>,
Sends a request to a remote server given a Request object and a callback fuction 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 analizing the response body and metadata.
let task = FetchService::fetch( post_request, link.callback(|response: Response<Result<String, 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, 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, Error> where
IN: Into<Text>,
OUT: From<Text>,
[src]
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, Error> 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, Error> where
IN: Into<Binary>,
OUT: From<Binary>,
[src]
request: Request<IN>,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, Error> 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, Error> where
IN: Into<Binary>,
OUT: From<Binary>,
[src]
request: Request<IN>,
options: FetchOptions,
callback: Callback<Response<OUT>>
) -> Result<FetchTask, Error> where
IN: Into<Binary>,
OUT: From<Binary>,
Fetch the data in binary format with 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>,