ask_nicely 0.2.0

A rest client helper library.
Documentation
use ask_nicely::prelude::*;
use serde::{Deserialize, Serialize};
use tokio;

#[nicely_macros::gen_client("https://api.weatherclient.com")]
// #[nicely_macros::gen_client(WEATHERA_API_URL)]
struct WeatherClient;

#[derive(Debug, serde::Serialize, nicely_macros::Request)]
#[request(path="/weather/{country}/{state}", authed=false, response=Weather, method="get", get_data=None)]
pub struct WeatherReq<'a> {
    pub country: &'a str,
    pub state: &'a str,
}

#[derive(Debug, serde::Deserialize)]
pub struct Weather {
    temp: i8,
    desc: String,
}

#[tokio::test]
async fn main() {
    let weather_client = WeatherClient::builder()
        .set_auth(Authentication::Bearer("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"))
        .build()
        .unwrap();

    let weather_req = WeatherReq {
        country: "USA",
        state: "Texas",
    };

    let path = weather_req.get_path();

    let response = weather_client.request(&weather_req).await;

    println!("{}", path);
}