#crypto #luno #bitcoin #web #crypto-api #api-client #api

luno-client

Luno API 客户端(封装器)用 Rust 编写

1 个不稳定版本

0.1.0 2022 年 8 月 14 日

#1 in #luno

MIT/Apache

19KB
462

Luno API 客户端(封装器)

https://www.luno.com/en/developers/api

身份验证

某些 API 调用需要您的应用程序进行身份验证。这是通过与您的账户关联的 API 密钥完成的。您可以通过访问设置页面上的 API 密钥部分来创建 API 密钥。

API 密钥由密钥 ID 和密钥秘密组成。例如,cnz2yjswbv3jd(密钥 ID)和 0hydMZDb9HRR3Qq-iqALwZtXLkbLR4fWxtDZvkB9h4I(密钥秘密)。

API 请求通过使用密钥 ID 作为用户名和密钥秘密作为密码的 HTTP 基本身份验证进行身份验证。缺少、错误或已吊销的密钥会导致返回错误 401。

当创建 API 密钥时,它会获得一组权限。密钥只能用于调用允许的 API 函数。

用法

依赖项

  1. reqwest
  2. serde
  3. serde_json
  4. tokio

配置

  1. 从 luno.com 获取您的 API 密钥和秘密
  2. 在您的项目路由中创建 .env 文件,并进行配置:
    API_KEY=myapikey
    API_SECRET=myapisecret
  3. 将 Luno 客户端导入到您的项目中并初始化 use luno_rust_api::Luno;
#[tokio::test] // any other async runtime can be used, not limited to tokio
async fn test_luno_async() {
	dotenv::dotenv().ok();
	let key = env::var("API_KEY").expect("Api Key doesn't exist yet, please add");
	let secret = env::var("API_SECRET").expect("Api Key Secret doesn't exist yet, please add");
	let luno = Luno::init(key, secret).await;
	let tickers = luno.get_all_balance().await;
	println!("{:#?}", json!(tickers.as_ref().unwrap())); // data can be serialized to json)
	assert_eq!(true, tickers.is_ok());
}

可用方法(将陆续添加更多,直到完成)

  1. create_account()
  2. get_all_balance()
  3. get_ticker(pair: "XBTNGN")
  4. get_all_tickers()
  5. get_full_order_book(pair: "XBTNGN")
  6. get_top_order_book(pair: "XBTNGN")

贡献

让我们变得更好 :)

依赖项

~6–18MB
~270K SLoC