OpenUrzednik.Nbp
1.0.35-preview.g216ea16a82
dotnet add package OpenUrzednik.Nbp --version 1.0.35-preview.g216ea16a82
NuGet\Install-Package OpenUrzednik.Nbp -Version 1.0.35-preview.g216ea16a82
<PackageReference Include="OpenUrzednik.Nbp" Version="1.0.35-preview.g216ea16a82" />
<PackageVersion Include="OpenUrzednik.Nbp" Version="1.0.35-preview.g216ea16a82" />
<PackageReference Include="OpenUrzednik.Nbp" />
paket add OpenUrzednik.Nbp --version 1.0.35-preview.g216ea16a82
#r "nuget: OpenUrzednik.Nbp, 1.0.35-preview.g216ea16a82"
#:package OpenUrzednik.Nbp@1.0.35-preview.g216ea16a82
#addin nuget:?package=OpenUrzednik.Nbp&version=1.0.35-preview.g216ea16a82&prerelease
#tool nuget:?package=OpenUrzednik.Nbp&version=1.0.35-preview.g216ea16a82&prerelease
OpenUrzednik.Nbp
Klient NBP (Narodowy Bank Polski) dla OpenUrzednik.NET — kursy walut oraz ceny złota z API Narodowego Banku Polskiego.
Część zestawu OpenUrzednik.NET — zobacz główne README po pełny przegląd projektu.
Status
🧪 Wersja preview — dostępne są klienty kursów walut (NbpCurrencyExchangeRateClient), tabel kursów (NbpExchangeRateTableClient) i cen złota (NbpGoldPriceClient). Publiczne API może się jeszcze zmienić przed wydaniem stabilnym.
Instalacja
dotnet add package OpenUrzednik.Nbp
Wymaga OpenUrzednik.Core i OpenUrzednik.Http (instalowane automatycznie jako zależności).
Użycie
Najprostszy wariant: domyślny adres API NBP i limit czasu z HttpClient.
using var httpClient = new HttpClient();
var client = new NbpGoldPriceClient(httpClient);
var result = await client.GetLatestAsync();
if (result.IsSuccess)
Console.WriteLine($"{result.Value.Date}: {result.Value.Price} zł");
else
Console.WriteLine(result.Errors[0].Message);
Własny adres (np. proxy albo bramki API) i limit czasu przekazujesz w NbpOptions. Klient nie zmienia HttpClient, więc możesz go współdzielić z innym kodem:
var client = new NbpCurrencyExchangeRateClient(httpClient, new NbpOptions
{
ApiUrl = "https://proxy.example.com/nbp/",
Timeout = TimeSpan.FromSeconds(5),
});
Z kontenerem DI użyj pakietu OpenUrzednik.Nbp.DependencyInjection: builder.Services.AddOpenUrzednikNbp() rejestruje wszystkie trzy klienty, a .AddStandardResilienceHandler() dodaje ponowienia.
Klient bierze adres API z pierwszego ustawionego miejsca: NbpOptions.ApiUrl, HttpClient.BaseAddress, a na końcu domyślny https://api.nbp.pl/api/. Jeśli nie ustawisz NbpOptions.Timeout, obowiązuje limit czasu HttpClient (domyślnie 100 s). NbpOptions.Timeout może ten limit skrócić, ale nie wydłużyć, bo HttpClient.Timeout nadal obowiązuje do otrzymania nagłówków odpowiedzi. Adres API nie może zawierać zapytania (?…) ani fragmentu (#…).
Błędy, takie jak brak danych, przekroczony limit zapytań albo upływ limitu czasu, wracają w wyniku, a nie jako wyjątki. Jeśli wolisz wyjątki, wywołaj na wyniku EnsureSuccess().
.NET Framework
Pakiet działa też na .NET Framework (przez netstandard2.0). Tam daty są typu DateTime, a nie DateOnly: metody przyjmują DateTime i zwracają go w modelach (np. GoldPrice.Date). Liczy się tylko data: godzinę klient pomija, a zwracane daty mają godzinę 00:00 i DateTimeKind.Unspecified.
Jeśli piszesz bibliotekę, która korzysta z tego pakietu, kompiluj ją na te same platformy (np. netstandard2.0;net8.0). Biblioteka tylko dla netstandard2.0 wywołuje metody z DateTime, a w aplikacji .NET 8+ NuGet wybierze wersję z DateOnly, więc dostaniesz MissingMethodException.
Logowanie i śledzenie
Klienty przyjmują opcjonalne parametry logger i traceSource. Bez nich nic nie logują i nie tworzą spanów. Żeby korzystać z ILogger i OpenTelemetry, zainstaluj adaptery OpenUrzednik.Extensions.Logging i OpenUrzednik.Diagnostics:
using OpenUrzednik.Diagnostics;
using OpenUrzednik.Extensions.Logging;
using OpenUrzednik.Nbp;
using OpenUrzednik.Nbp.Gold;
var client = new NbpGoldPriceClient(httpClient,
logger: loggerFactory.CreateOpenUrzednikLogger<NbpGoldPriceClient>(),
traceSource: ActivityTraceSource.GetShared(NbpTelemetry.SourceName));
Spany trafiają do źródła OpenUrzednik.Nbp, a logi do kategorii z pełną nazwą klienta (np. OpenUrzednik.Nbp.Gold.NbpGoldPriceClient).
Klienty używają własnych interfejsów (IOpenUrzednikLogger, IOpenUrzednikTraceSource z OpenUrzednik.Core), a nie ILogger i ActivitySource. Dzięki temu ten pakiet nie potrzebuje Microsoft.Extensions.Logging.Abstractions ani innych pakietów do logowania i śledzenia. Z ILogger i ActivitySource łączą go dopiero adaptery.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- OpenUrzednik.Core (>= 1.0.21-preview.g216ea16a82)
- OpenUrzednik.Http (>= 1.0.14-preview.g216ea16a82)
- System.Text.Json (>= 10.0.12)
-
net10.0
- OpenUrzednik.Core (>= 1.0.21-preview.g216ea16a82)
- OpenUrzednik.Http (>= 1.0.14-preview.g216ea16a82)
-
net8.0
- OpenUrzednik.Core (>= 1.0.21-preview.g216ea16a82)
- OpenUrzednik.Http (>= 1.0.14-preview.g216ea16a82)
-
net9.0
- OpenUrzednik.Core (>= 1.0.21-preview.g216ea16a82)
- OpenUrzednik.Http (>= 1.0.14-preview.g216ea16a82)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OpenUrzednik.Nbp:
| Package | Downloads |
|---|---|
|
OpenUrzednik.Nbp.DependencyInjection
Microsoft.Extensions.DependencyInjection registration for the OpenUrzednik.NET NBP clients: typed HttpClients, validated options, logging and tracing, ready for AddStandardResilienceHandler(). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.35-preview.g216ea16a82 | 29 | 10/4/2026 |
| 1.0.34-preview.gfb7024fa68 | 28 | 10/4/2026 |
| 1.0.33-preview.ge2eda989bc | 27 | 10/4/2026 |
| 1.0.33-preview.g9fc0629e01 | 30 | 10/4/2026 |
| 1.0.33-preview.g7b67005d8e | 37 | 10/4/2026 |
| 1.0.33-preview.g291278ba18 | 30 | 10/4/2026 |
| 1.0.32-preview.gd2d5469fec | 29 | 10/4/2026 |
| 1.0.31-preview.g46feaecd23 | 53 | 10/4/2026 |
| 1.0.31-preview.g2ce3ff1c38 | 32 | 10/4/2026 |
| 1.0.31-preview.g0e8c6a4e37 | 31 | 10/4/2026 |
| 1.0.30-preview.gcf50381a7a | 33 | 10/4/2026 |
| 1.0.30-preview.g41f36cea43 | 31 | 10/4/2026 |
| 1.0.29-preview.ge18817eb58 | 27 | 10/4/2026 |
| 1.0.28-preview.gaebba80840 | 31 | 10/4/2026 |
| 1.0.27-preview.gde7b6f8597 | 47 | 10/4/2026 |
| 1.0.27-preview.gc3cc7f9beb | 36 | 10/4/2026 |
| 1.0.27-preview.g7dc96f3b99 | 36 | 10/4/2026 |
| 1.0.27-preview.g19911c736d | 35 | 10/4/2026 |
| 1.0.26-preview.ga121ad3626 | 32 | 10/4/2026 |
| 1.0.26-preview.g465074c6fa | 34 | 10/4/2026 |