OpenUrzednik.Mf 1.0.13-preview.gde7b6f8597

This is a prerelease version of OpenUrzednik.Mf.
dotnet add package OpenUrzednik.Mf --version 1.0.13-preview.gde7b6f8597
                    
NuGet\Install-Package OpenUrzednik.Mf -Version 1.0.13-preview.gde7b6f8597
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenUrzednik.Mf" Version="1.0.13-preview.gde7b6f8597" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpenUrzednik.Mf" Version="1.0.13-preview.gde7b6f8597" />
                    
Directory.Packages.props
<PackageReference Include="OpenUrzednik.Mf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OpenUrzednik.Mf --version 1.0.13-preview.gde7b6f8597
                    
#r "nuget: OpenUrzednik.Mf, 1.0.13-preview.gde7b6f8597"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OpenUrzednik.Mf@1.0.13-preview.gde7b6f8597
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OpenUrzednik.Mf&version=1.0.13-preview.gde7b6f8597&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=OpenUrzednik.Mf&version=1.0.13-preview.gde7b6f8597&prerelease
                    
Install as a Cake Tool

OpenUrzednik.NET 💼🇵🇱

Nuget License

OpenUrzednik.NET to nowoczesny, otwartoźródłowy zestaw bibliotek dla platformy .NET, służący do integracji z polskimi API oraz danymi publicznymi. W aktualnej fazie rozwoju projekt skupia się na wspólnych fundamentach (OpenUrzednik.Core) oraz na referencyjnym kliencie API NBP (OpenUrzednik.Nbp), na którego wzór powstaną kolejne pakiety.

⚠️ Projekt nieoficjalny: Ten zestaw bibliotek jest oddolną inicjatywą społecznościową i nie jest powiązany, autoryzowany ani sponsorowany przez żadne z polskich ministerstw ani urzędów państwowych.


🚀 Dlaczego powstał ten projekt?

Większość istniejących pakietów dla polskich API została porzucona lub nie utrzymuje się w nowoczesnym modelu .NET. OpenUrzednik.NET ma dostarczać:

  • Nowoczesne API: wsparcie dla net8.0, net9.0 i net10.0, a przez netstandard2.0 także dla .NET Framework (testujemy na .NET Framework 4.8)
  • Spójne modele błędów: OpenUrzednikResult / OpenUrzednikResult<T> zamiast rozproszonej logiki błędów
  • Elastyczność: zachowanie klasycznego stylu przez .EnsureSuccess() / .EnsureSuccessAsync()
  • Przejrzysty rozwój: kod podzielony na Core i pakiety provider-specific

📦 Status pakietów

Pakiet Status Opis Celowy target
OpenUrzednik.Core ✅ Dostępne podstawowe abstrakcje OpenUrzednikResult, OpenUrzednikResult<T>, OpenUrzednikError, OpenUrzednikException oraz metody rozszerzeń EnsureSuccess / EnsureSuccessAsync netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Http 🧪 Preview Wspólna warstwa HTTP dla providerów REST/JSON (RestRequestExecutor). Używają jej pakiety providerów, nie aplikacje netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Extensions.Logging 🧪 Preview Przekazuje logi klientów do ILogger z Microsoft.Extensions.Logging netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Diagnostics 🧪 Preview Zamienia spany klientów na Activity dla OpenTelemetry (AddSource("OpenUrzednik.*")) netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Nbp 🧪 Preview Kursy walut (tabele A, B, C), tabele kursów i ceny złota z API NBP. API publiczne może się jeszcze zmienić netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Nbp.DependencyInjection 🧪 Preview AddOpenUrzednikNbp(): klienty NBP w DI z IHttpClientFactory, gotowe na AddStandardResilienceHandler() netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Gus 🚧 Szkielet Pakiet przygotowany pod integrację z GUS netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Krs 🚧 Szkielet Pakiet przygotowany pod integrację z KRS netstandard2.0, net8.0, net9.0, net10.0
OpenUrzednik.Mf 🚧 Szkielet Pakiet przygotowany pod integrację z Białą Listą VAT netstandard2.0, net8.0, net9.0, net10.0

🛠️ Szybki start

Aktualnie najłatwiej zacząć od OpenUrzednik.Core.

Przykład użycia OpenUrzednikResult

using OpenUrzednik.Core;
using OpenUrzednik.Core.Errors;
using OpenUrzednik.Core.Extensions;

OpenUrzednikResult<int> result = OpenUrzednikResult.Success(42);
int value = result.EnsureSuccess();
Console.WriteLine(value);

Przykład błędu biznesowego:

using OpenUrzednik.Core;
using OpenUrzednik.Core.Errors;
using OpenUrzednik.Core.Extensions;

OpenUrzednikResult<int> failed = OpenUrzednikResult.Failure<int>(new ValidationError("NIP is invalid."));

try
{
    int value = failed.EnsureSuccess();
}
catch (ValidationException ex)
{
    Console.WriteLine(ex.Message);
}

Uwaga o DI i klientach

Pakiet OpenUrzednik.Nbp zawiera klienty NbpCurrencyExchangeRateClient, NbpExchangeRateTableClient i NbpGoldPriceClient (wersja preview — sposób tworzenia klientów jeszcze się zmieni, zob. ADR-0007). Rozszerzenia DI pojawią się w osobnych pakietach *.DependencyInjection. Pakiety OpenUrzednik.Gus, OpenUrzednik.Krs i OpenUrzednik.Mf są szkieletami — prace nad nimi ruszą po ukończeniu pakietu NBP (ADR-0010).

Testy

Testy znajdują się w katalogu tests/: testy jednostkowe, testy HTTP z WireMockiem oraz (opcjonalne, uruchamiane ręcznie) testy na prawdziwym API.


🤝 Współpraca (Contributing)

Chcesz dodać obsługę kolejnego źródła danych lub zgłosić błąd? Zobacz CONTRIBUTING.md — zawiera zasady pracy nad repozytorium, konwencje API oraz instrukcje dla pull requestów.

📄 Licencja

Projekt jest dostępny na warunkach licencji MIT. Szczegóły znajdziesz w pliku LICENSE.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.