Skip to content

Repository files navigation

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
  • 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 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 net8.0, net9.0, net10.0
OpenUrzednik.Extensions.Logging 🧪 Preview Przekazuje logi klientów do ILogger z Microsoft.Extensions.Logging net8.0, net9.0, net10.0
OpenUrzednik.Diagnostics 🧪 Preview Zamienia spany klientów na Activity dla OpenTelemetry (AddSource("OpenUrzednik.*")) 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ć net8.0, net9.0, net10.0
OpenUrzednik.Nbp.DependencyInjection 🧪 Preview AddOpenUrzednikNbp(): klienty NBP w DI z IHttpClientFactory, gotowe na AddStandardResilienceHandler() net8.0, net9.0, net10.0
OpenUrzednik.Gus 🚧 Szkielet Pakiet przygotowany pod integrację z GUS net8.0, net9.0, net10.0
OpenUrzednik.Krs 🚧 Szkielet Pakiet przygotowany pod integrację z KRS net8.0, net9.0, net10.0
OpenUrzednik.Mf 🚧 Szkielet Pakiet przygotowany pod integrację z Białą Listą VAT 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.

About

Nieoficjalny zestaw nowoczesnych i wydajnych bibliotek .NET (C#) dla polskich API publicznych (GUS BIR, KRS, NBP, Biała Lista VAT). Wspiera .NET Standard 2.0 oraz .NET 8/9/10+.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages