Freecurrency-API 0.1.0
dotnet add package Freecurrency-API --version 0.1.0
NuGet\Install-Package Freecurrency-API -Version 0.1.0
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的版本 Install-Package。
<PackageReference Include="Freecurrency-API" Version="0.1.0" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Freecurrency-API --version 0.1.0
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#r "nuget: Freecurrency-API, 0.1.0"
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以引用包。
// Install Freecurrency-API as a Cake Addin #addin nuget:?package=Freecurrency-API&version=0.1.0 // Install Freecurrency-API as a Cake Tool #tool nuget:?package=Freecurrency-API&version=0.1.0
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
Freecurrency-API
非官方的 RestEase C# 客户端,用于 freecurrencyapi,它使用 IMemoryCache 缓存结果。
配置
您需要您的 ApiKey 来使用 freecurrencyapi,您可以在 https://app.freecurrencyapi.com/register 获取一个。
通过依赖注入注册客户端
services.AddFreecurrencyAPI(o =>
o.ApiKey = "[YOUR_API_KEY]"
);
用法
状态
返回您的当前配额
IFreecurrencyClient client = // get from DI
var statusResponse = await client.GetStatusAsync();
最新汇率
返回最新的汇率。默认的基本货币是 USD。
IFreecurrencyClient client = // get from DI
var rates = await _client.GetLatestExchangeRatesAsync(CurrencyCodes.USD, new [ CurrencyCodes.EUR, CurrencyCodes.AUD ]);
var rate = await _client.GetLatestExchangeRateAsync(CurrencyCodes.USD, CurrencyCodes.EUR);
历史汇率
返回最新的汇率。默认的基本货币是 USD。
// todo
货币
返回所有支持的货币
IFreecurrencyClient client = // get from DI
var currencyResponse = await client.GetCurrency("EUR");
var currenciesResponse = await client.GetCurrencies(new [] { "EUR", "USD" });
var allCurrenciesResponse = await client.GetCurrencies();
选项
public class FreecurrencyAPIOptions
{
/// <summary>
/// The required BaseAddress.
/// </summary>
[Required]
public Uri BaseAddress { get; set; } = new("https://api.freecurrencyapi.com/v1");
[Required]
public string ApiKey { get; set; } = null!;
/// <summary>
/// Optional HttpClient name to use.
/// </summary>
public string? HttpClientName { get; set; }
/// <summary>
/// This timeout in seconds defines the timeout on the HttpClient which is used to call the BaseAddress.
/// Default value is 60 seconds.
/// </summary>
[Range(1, int.MaxValue)]
public int TimeoutInSeconds { get; set; } = 60;
/// <summary>
/// The maximum number of retries.
/// </summary>
[Range(0, 99)]
public int MaxRetries { get; set; } = 3;
/// <summary>
/// In addition to Network failures, TaskCanceledException, HTTP 5XX and HTTP 408. Also retry these <see cref="HttpStatusCode"/>s. [Optional]
/// </summary>
public HttpStatusCode[]? HttpStatusCodesToRetry { get; set; }
/// <summary>
/// The cache expiration time in minutes for the latest exchange rates.
/// Default value is 60 minutes.
/// </summary>
[Range(0, int.MaxValue)]
public int GetLatestExchangeRatesCacheExpirationInMinutes { get; set; } = 60;
/// <summary>
/// The cache expiration time in hours for the currencies.
/// Default value is 24 hours.
/// </summary>
[Range(0, int.MaxValue)]
public int GetCurrenciesCacheExpirationInHours { get; set; } = 24;
}
引用
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 兼容。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 兼容。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Microsoft.Extensions.Caching.Memory (>= 3.1.0)
- Microsoft.Extensions.Http.Polly (>= 3.1.0)
- RestEase.HttpClientFactory (>= 1.6.4)
- SanitizedHttpLogger (>= 0.0.3)
-
.NETStandard 2.1
- Microsoft.Extensions.Caching.Memory (>= 3.1.0)
- Microsoft.Extensions.Http.Polly (>= 3.1.0)
- RestEase.HttpClientFactory (>= 1.6.4)
- SanitizedHttpLogger (>= 0.0.3)
-
net6.0
- Microsoft.Extensions.Caching.Memory (>= 6.0.0)
- Microsoft.Extensions.Http.Polly (>= 6.0.0)
- RestEase.HttpClientFactory (>= 1.6.4)
- SanitizedHttpLogger (>= 0.0.3)
-
net7.0
- Microsoft.Extensions.Caching.Memory (>= 7.0.0)
- Microsoft.Extensions.Http.Polly (>= 7.0.0)
- RestEase.HttpClientFactory (>= 1.6.4)
- SanitizedHttpLogger (>= 0.0.3)
-
net8.0
- Microsoft.Extensions.Caching.Memory (>= 8.0.0)
- Microsoft.Extensions.Http.Polly (>= 8.0.0)
- RestEase.HttpClientFactory (>= 1.6.4)
- SanitizedHttpClientLogger (>= 0.0.3)
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。
# 0.1.0 (2024年7月8日)
- #6 修复缓存过期时间 [错误]
- #5 在创建 FreecurrencyClient 时,缓存过期时间使用错误的单位 [错误]
完整的发布说明可在此处找到: https://github.com/StefH/FreecurrencyAPI/blob/main/ReleaseNotes.md