1 个不稳定版本
0.1.0 | 2022年1月29日 |
---|
#88 in 财经
110KB
1.5K SLoC
tcmb_evds
一个用于访问土耳其共和国中央银行(CBRT)数据库的Rust库。
目录
关于
该crate的名称来源于CBRT和电子数据交付系统的缩写词的土耳其语含义。接下来是内容。crate通过两个主要结构设计,为各种目的提供同步-异步模式。
crate的操作功能基于EVDS网络服务。在这个crate中,这些服务分为两部分。 evds_basic
和 evds_currency
是提到的部分。后者在货币操作方面,与前者相比没有足够的控制机制,提供了所有的网络服务操作。可以很容易地理解 evds_currency
提供了货币操作访问。此外,类型和有效性控制在这部分中更为明显。虽然根据 evds_basic
看起来有点复杂,但 evds_currency
包含了额外的自控算法。这些算法检查给定数据的语法和有效性。这个结构很难出错。
此外,crate的整体结构会根据所选模式而改变。建议同步编程和异步编程分别使用同步和异步模式。模式选择可以通过特性调整进行。
接下来的内容将详细介绍两个主要结构、模式选择、示例以及crate的详细说明。
安装
请将以下代码之一添加到您的 Cargo.toml 中以安装crate。
对于 异步模式,请添加。
[dependencies]
tcmb_evds = "0.1"
对于 同步模式,请添加。
[dependencies]
tcmb_evds = {version = "0.1", default-features = false, features = ["sync_mode"]
用法
evds_basic
get_data 获取序列数据的示例。
use tcmb_evds::*;
// assigning required arguments.
// another data series = "TP.DK.USD.A-TP.DK.USD.S-TP.DK.GBP.A-TP.DK.GBP.S"
let data_series = "TP.DK.USD.A";
let date = date::Date::from("13-12-2011")?;
let date_preference = date::DatePreference::Single(date);
let api_key = common::ApiKey::from("user_api_key".to_string())?;
let return_format = common::ReturnFormat::Xml;
let evds = common::Evds::from(api_key, return_format);
// get data operation based on given series.
let currency_data = evds_basic::get_data(data_series, &date_preference, &evds)?;
evds_currency
get_data 获取货币序列数据的示例。
use tcmb_evds::*;
// common elements
let api_key = common::ApiKey::from("user_api_key".to_string())?;
let return_format = common::ReturnFormat::Json;
let evds = common::Evds::from(api_key, return_format);
let date = date::Date::from("13-12-2011")?;
let date_preference = date::DatePreference::Single(date);
// currency series creation
let exchange_type = evds_currency::ExchangeType::new();
let currency_code = evds_currency::CurrencyCode::Usd;
// Ytl mode adds "YTL" to currency series, when it is true.
let ytl_mode = true;
let currency_series =
evds_currency::CurrencySeries::from(
exchange_type,
currency_code,
date_preference,
ytl_mode
);
// get data operation based on created CurrencySeries.
let currency_data = currency_series.get_data(&evds)?;
详细信息
有一些细节需要澄清,以便用户了解如何使用这个tcmb_evds API库。
evds_basic
这是用户面临的两大部分之一。大多数EVDS Web服务操作都可以使用evds_basic API函数完成。这些函数包括:get_data、get_data_group、get_categories、get_advanced_data_group 和 get_series_list。这些函数的功能在项目文档中解释得很清楚。同时,用户还可以在下面了解更多关于这些函数的信息。《函数名称》和《Web服务作为函数》部分提供了关于这些函数的额外信息。
evds_basic 函数使用以下结构作为支持结构,这些结构是 date::DatePreference 和 common::Evds,在它们创建时检查给定的数据是否有效。这些支持者满足了EVDS作为标准所需的一般信息。因此,用户提供的由这些支持者检查并自动转换为方便的URL。然而,有一些参数,这些参数是针对特定EVDS操作所需的。这些参数直接用于最后URL格式以进行Web服务请求。这意味着对这些参数没有数据有效性检查。因此,用户有责任为这些参数提供有效数据。
evds_currency
这是用户面临的两大部分中的另一部分。可以使用evds_currency API函数执行特定货币操作。这些函数包括:get_data、get_advanced_data 和 get_multiple_data。这些函数是 CurrencySeries 和 MultipleCurrencySeries 结构的方法。这些函数的使用细节在项目文档中有清晰的解释。同时,用户还可以在下面了解更多关于这些函数的信息。《函数名称》和《Web服务作为函数》部分提供了关于这些函数的额外信息。
所提到的方法需要一些结构,分为两部分:主要结构和支持结构。前者称为 CurrencySeries 和 MultipleCurrencySeries。这些结构实现了所提到的方法,即主要操作函数,并包含在crate文档中解释的重要子结构。后者结构称为 common::Evds 和 AdvancedProcesses。前者提供EVDS作为标准所需的一般信息。后者为用户提供更多定制选项以获取特定货币数据。
所提到的3个方法使用预先创建的结构。在创建这些结构时,这个crate会检查给定数据的有效性和正确性。因此,使用 evds_currency 方法是错误免费的方法,与 evds_basic 不同。也就是说,evds_currency 负责检查给定数据的有效性。
函数名称
此crate中提供的 evds_basic API函数
-
get_data 返回请求的数据序列信息。
-
get_data_group 返回请求的数据组。
-
get_categories 返回EVDS的所有请求类别。
-
get_advanced_data_group 返回指定的数据组。
-
get_series_list 返回所有可用的序列列表。
此crate中提供的 evds_currency API函数
-
get_data 返回关于单一货币的数据。
-
get_advanced_data 返回关于单一货币的数据,带有频率公式。
-
。
-
get_multiple_data 返回关于多个货币的数据。
支持结构
通用:在用户API函数中用于 evds_basic 和 evds_currency 的基本结构。
- DatePreference:大多数函数都需要。
- Evds:每个函数都需要。
对于evds_basic
- DatePreference
对于evds_currency
-
AdvancedProcesses:包括 get_advanced_data 函数的高级货币数据配置。
-
Currency Series:一个复合结构,包含以下结构以提供单和高级(配置的)货币数据。
- ytl_mode:这是一个bool选项,用于根据YTL革命选择货币值。
- ExchangeType:这是一个结构,用于确定货币价值是卖出还是买入。
- CurrencyCode:货币单位选项的枚举。
- DatePreference:基本通用结构。
-
MultipleCurrencySeries:一个复合结构,包含以下结构以提供多种货币数据。
- ytl_mode
- ExchangeType
- CurrencyCodes:货币单位选项的结构。
- DatePreference
作为函数的Web服务
在用户指南
和使用说明
中描述的土耳其语Web服务对应以下功能。
格式
'function_sign' corresponds to 'a section of user guide'
evds_basic函数
- get_data对应于1. EVDS系列数据服务和2.1.级值请求
- get_data_group对应于3.按给定数据组获取所有系列数据
- get_categories对应于4.1.类别服务
- get_advanced_data_group对应于4.2.数据组服务
- get_series_list对应于4.3.系列服务
evds_currency方法
- get_data对应于1. EVDS系列数据服务
- get_advanced_data对应于2.2.具有频率公式的...系列
- get_multiple_data对应于2.1.级值请求
比较
本节说明了两个主要结构的基本差异。
-
evds_basic
- 提供EVDS Web服务操作的大部分功能,除了被称为此crate中高级货币操作频率公式服务以外的货币价值。
- 用户负责确保给定系列和某些数据的有效性。
- 对于货币服务操作来说不太可靠。
-
evds_currency
- 指定用于货币操作。
- 给定的系列和一些数据会自动检查。
- 对于货币服务操作来说更可靠。
更多
在crate的文档中给出了详细的使用示例和更多内容。用户可以访问crates.io
或克隆存储库,并在终端中输入Cargo doc --open
命令。
参考
依赖项
~7–15MB
~209K SLoC