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                
#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                

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 已计算。
兼容的目标框架(s)
包含的目标框架(包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 上次更新
0.1.0 134 7/8/2024
0.0.4 494 3/21/2024
0.0.3 118 3/16/2024
0.0.2 108 3/14/2024
0.0.1 99 3/13/2024

# 0.1.0 (2024年7月8日)
- #6 修复缓存过期时间 [错误]
- #5 在创建 FreecurrencyClient 时,缓存过期时间使用错误的单位 [错误]

完整的发布说明可在此处找到: https://github.com/StefH/FreecurrencyAPI/blob/main/ReleaseNotes.md