FastAPI + PostgreSQL (UUID v7) + Docker

Python 944 PLN
Praca 6 z 13
Wysokowydajne i architektonicznie czyste jądro REST API, zaprojektowane zgodnie z zasadami Clean Architecture. Projekt jest w pełni konteneryzowany i zoptymalizowany do natychmiastowego lokalnego wdrożenia lub wdrożenia produkcyjnego. Ten szablon został opracowany jako uniwersalna podstawa Enterprise (System Zarządzania Użytkownikami) dla niestandardowych CRM, marketplace'ów, mobilnych backendów i platform SaaS, co eliminuje potrzebę pisania podstawowej logiki od zera.

Cechy architektoniczne i technologie

1. Clean Architecture: Wyraźny podział odpowiedzialności. Modele biznesowe SQLAlchemy są umieszczone w korzeniu backendu, logika CRUD jest izolowana w wzorcu Repository, a walidacja danych opiera się na schematach Pydantic v2. To eliminuje bałagan w kodzie i upraszcza skalowanie.

2. Bezpieczeństwo na UUID v7: Wszystkie encje w bazie danych korzystają z nowoczesnych, uporządkowanych czasowo identyfikatorów UUID v7. To chroni system przed przeszukiwaniem inkrementalnych ID (1, 2, 3), ukrywa rzeczywistą objętość danych przed konkurencją i przyspiesza indeksowanie w PostgreSQL w porównaniu do starych UUID v4.

3. Zaawansowany model ról dostępu: Zrealizowano ścisłe rozdzielenie uprawnień (Administrator / Autor / Użytkownik) poprzez zależności FastAPI. Ochrona tras działa na poziomie autoryzacji JWT Bearer.

4. Automatyzacja wdrożenia (CI/CD Ready): Wbudowany skrypt kontenerowy automatyzuje wdrożenie. Przy uruchamianiu kontenera Docker samodzielnie kontroluje dostępność PostgreSQL, automatycznie stosuje krokowe migracje Alembic i uruchamia skrypt seed bazy danych do automatycznego tworzenia lub aktualizacji uprawnień superadministratora.

5. Nattywna specyfikacja API: Dokumentacja Swagger UI i ReDoc jest generowana automatycznie na podstawie typów Pythona i schematów Pydantic. Ścieżki REST-endpointów zapewniają bezkonfliktową generację typów frontendowych przez Orval/OpenAPI-codegen.

6. Optymalizacja zapytań (N+1 Fixed): Wszystkie powiązane encje są pobierane przez ładowanie zachłanne (joinedload) na poziomie repozytoriów. To zmniejsza obciążenie bazy danych, eliminuje błędy detached instance podczas pracy wieloprocesowych workerów Uvicorn na produkcji i skraca czas odpowiedzi API.

Dostępna specyfikacja endpointów