EFakturaPro API - Portfolio

Menu
Przejdź do treści
API jest aplikacją ASP.NET Core, która wykorzystuje różne usługi do budowy systemu opartego na mikroserwisach. Oto szczegółowy opis:
  1. Inicjalizacja i Konfiguracja:
    • WebApplication.CreateBuilder(args): Tworzy builder aplikacji webowej.
    • Ustawia ścieżki do plików konfiguracyjnych: encryptedFilePath (zaszyfrowany) i originalFilePath (oryginalny).
  2. Szyfrowanie i Deszyfrowanie Plików Konfiguracyjnych:
    • Pobiera hasło do deszyfrowania z zmiennej środowiskowej APPSETTINGS_MAIN.
    • Sprawdza, czy plik appsettings.encrypted.json istnieje. Jeśli tak, deszyfruje go do strumienia pamięci. Jeśli nie, szyfruje appsettings.json, a następnie deszyfruje nowo utworzony zaszyfrowany plik.
    • Wczytuje odszyfrowaną konfigurację do aplikacji.
  3. Konfiguracja Bazy Danych:
    • Odczytuje connection stringi do MSSQL i MySQL z odszyfrowanej konfiguracji.
    • Rejestruje konteksty baz danych w kontenerze usług:
      • ApplicationDbContext i MsConnection dla MSSQL.
      • MysqlDbContext i MysqlDbContextConfig dla MySQL.
  4. Rejestracja Usług:
    • Dodaje różne usługi do kontenera DI:
      • Singletony: NotificationService, DDoSProtectionService, AppSettingsService.
      • Scoped: CustomerService, WareHauseService, UserService, InvoiceService, InvoicePositionService, WorkerService, KPService, AuthService, VATService, RabbitMQConnection.
      • Transient: różne walidatory dla modeli danych (CustomerValidation, UsersValidation, InvoiceValidator, itp.).
      • HttpClient.
  5. Konfiguracja Swaggera:
    • Dodaje Swagger do generowania dokumentacji API, w tym konfigurację dla JWT.
  6. Konfiguracja JWT:
    • Odczytuje klucz, wydawcę i odbiorcę JWT z konfiguracji.
    • Dodaje i konfiguruje uwierzytelnianie JWT.
  7. Konfiguracja CORS:
    • Dodaje politykę CORS, która pozwala na wszystkie nagłówki i metody HTTP.
  8. Środowisko i Middleware:
    • Włącza Swagger i SwaggerUI w trybie deweloperskim.
    • Konfiguruje routowanie, middleware dla ochrony przed DDos, HTTPS redirection, CORS, uwierzytelnianie i autoryzację.
  9. Mapowanie Kontrolerów:
    • Mapuje kontrolery do ścieżek URL.
  10. Szyfrowanie Pliku Konfiguracyjnego przy Zatrzymaniu Aplikacji:
    • Przy zatrzymaniu aplikacji, ponownie szyfruje appsettings.json i zapisuje go jako appsettings.encrypted.json.
  11. Uruchomienie Aplikacji:
    • Uruchamia aplikację.
Całe API jest skonfigurowany do pracy z bazami danych, obsługi uwierzytelniania JWT, ochrony przed atakami DDos oraz zapewnienia elastyczności dzięki korzystaniu z usług DI. Dodatkowo używa mechanizmów szyfrowania dla zabezpieczenia konfiguracji.
Wróć do spisu treści