#async-client #day #astronomy #picture #api-client #date #nasa

apod_async_client

apod-async-client 是一个提供NASA每日天文图片API简单客户端的crate

3个不稳定版本

0.2.0 2021年3月6日
0.1.1 2020年4月12日
0.1.0 2019年11月16日

#4 in #picture

MIT许可证

11KB
184 代码行

apod-async-client

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

apod-async-client 是一个提供NASA "每日天文图片" API的简单客户端的crate。

客户端基于 reqwesttokio,并要求在您的应用程序中设置tokio反应器。

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(())
}

这个crate非常简单,但让我练习了以下点

  • 了解Rust异步IO,async/await和future管理
  • 在Rust库中实践错误设计,使用 thiserror
  • 使用 mockito、Rust中的测试和文档进行HTTP模拟。

依赖项

~3–19MB
~246K SLoC