/apod-async-client

Rust "Astronomy Picture Of the Day" client

Primary LanguageRust

apod-async-client

Apod async client crate Apod async client documentation Apod async client travis

apod-async-client is a crate providing a simple client for NASA "Astronomy Picture of the Day" API.

The client is based on reqwest and tokio, and requires the tokio reactor to be setup in your application.

use apod_async_client::{APODClient, APODClientError, Date};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), APODClientError> {
    let client = APODClient::new("DEMO_KEY");
    let (metadata, rate_limit) = client.get_picture(&Date::Today, true).await?;
    Ok(())
}

This crate is quite simple, but allowed me to exercise the following points :

  • Learn about Rust asynchronous IO, async/await and futures management
  • Practice error design in a Rust library, using thiserror
  • Practice HTTP mocking using mockito, tests and documentation in Rust.