Tehnologije

← Početna
Backend & API

Backend Python i FastAPI — moderni i skalabilni API-ji

FastAPI je referentni Python framework za asinkrone REST API-je. Spaja izvorne Python type hintove s automatskom Pydantic validacijom, automatski generiranom OpenAPI dokumentacijom i ASGI performansama usporedivima s Node.js-om — bez žrtvovanja čitljivosti koda.

FastAPI — najbrži Python framework

FastAPI se izvodi na Uvicornu (ASGI poslužitelj) uz Gunicorn za višeprocesni rad u produkciji. Izvorni Dependency Injection omogućuje izolirano testiranje bilo kojeg sloja bez složenih mockova: autentifikacija, database session, rate limiting — svaki je ubrizgavajuća ovisnost.

OpenAPI 3.1 dokumentacija automatski se generira iz type hintova — Swagger UI i ReDoc dostupni su na `/docs` i `/redoc` u razvoju. Pydantic v2 shema (validator temeljen na Rustu) validira zahtjeve i odgovore 10–20 puta brže od Pydantica v1. Svako neispravno polje vraća 422 s jasnim, lokaliziranim porukama o pogrešci.

  • Izvorni async/await — neblokirajući I/O na svim operacijama s bazom i HTTP-om
  • BackgroundTasks za operacije nakon odgovora (e-pošta, webhook, log)
  • Izvorna podrška za WebSocket za funkcionalnosti u stvarnom vremenu (chat, obavijesti)
  • Rate limiting sa slowapijem (temeljen na limits) — po IP-u i po korisniku
  • Middleware CORS, kompresija (gzip/brotli), request ID, mjerenje vremena

PostgreSQL, SQLAlchemy i Alembic

Za sve operacije s bazom koristimo SQLAlchemy 2.0 async (asyncpg driver). Modeli se definiraju s Mapped tipovima — type-safe, bez stringova. Složeni upiti pišu se u SQLAlchemy Coreu (provjera pri kompajliranju) ili čistim SQL-om preko `text()` s bind parametrima — nikad interpolacijom stringova (potpuna prevencija SQLi-ja).

Alembic migracije automatski se generiraju iz promjena modela i ručno pregledavaju prije primjene. Svaka migracija ima testirane `upgrade()` i `downgrade()`. U produkciji se migracije izvode u CI-ju prije deploya — baza je uvijek sinkronizirana s kodom. Connection pooling putem asyncpga s veličinom poola koja se konfigurira po servisu.

  • Row-level locking sa `SELECT ... FOR UPDATE` za kritične istodobne operacije
  • Full-text search s pg_trgm i tsvector — bez Elasticsearcha za jednostavne slučajeve
  • JSONB za polustrukturirane podatke s GIN indeksiranjem
  • Particionirane tablice za tablice s milijunima redaka (logovi, eventi)

Redis caching i horizontalno skaliranje

Redis 7 koristi se za aplikacijski cache (TTL po endpointu), session store (JWT refresh tokeni sa selektivnim opozivom), pub/sub za evente u stvarnom vremenu i redove za pozadinske poslove (Celery ili ARQ). Strategija cachiranja je cache-aside s eksplicitnom invalidacijom — ne slijepi TTL koji može posluživati zastarjele podatke.

  • JWT autentifikacija s access tokenom (15 min) + Redis refresh tokenom (7 dana)
  • Celery + Redis broker za asinkrone zadatke (generiranje PDF-a, e-pošta, uvozi)
  • Health check endpoint `/health` sa statusom baze, Redisa i verzijom deploya
  • Strukturirano JSON logiranje (structlog) — kompatibilno s Loki/Datadog/ELK

Prednosti i ograničenja

Prednosti

  • ASGI performanse usporedive s Node.js-om i Goom na I/O-u.
  • OpenAPI dokumentacija automatski generirana iz type hintova.
  • Brza Pydantic v2 validacija s jasnim 422 pogreškama.
  • Čitljiv kod, Python poznat većini timova.

Ograničenja

  • Python je i dalje sporiji od Goa ili Rusta na zadacima intenzivnim za CPU.
  • async/await traži disciplinu — jedan blokirajući poziv blokira cijeli event loop.
  • Mlađi ekosustav od Djanga za funkcije „sve uključeno“.
  • Ne uključuje ugrađeni ORM ni admin — birate ih zasebno.

Kratak zaključak

Odaberite FastAPI za asinkrone REST API-je, mikroservise i backendove za SPA/mobilne aplikacije. Za ekstremno CPU-bound aplikacije ili monolite s gotovim adminom prikladniji mogu biti Go odnosno Django.

Tablica specifikacija

MogućnostGranica / pragTipična uporaba
Konkurentnostasync/await, neblokirajući I/OCPU-bound zahtijeva zasebne workereAPI-ji s mnogo poziva prema bazi/HTTP-u
LatencijaNiska latencija po endpointu s Redis cacheomRaste sa serijalizacijom velikih payloadaSaaS backend, mobilno, stvarno vrijeme
Validacija i dokumentacijaPydantic v2 + automatski OpenAPI 3.1Složena shema produljuje vrijeme pokretanjaJavni API-ji sa Swagger/ReDoc
Tipičan trošakOtvoreni kod, radi na 1 vCPU-uHorizontalno skaliranje traži više procesaOd MVP-a do produkcije

FastAPI u odnosu na alternative

KriterijFastAPIDjango / Express
Async performanseIzvrsne (izvorni ASGI)Django djelomično, Express dobre
Automatska OpenAPI dokumentacijaDa, iz type hintovaZahtijeva dodatne pakete
Ugrađeni admin / ORMNe (birate zasebno)Django: da; Express: ne

Često postavljana pitanja

Je li FastAPI brži od Djanga?

Da na I/O-u. FastAPI radi asinkrono na ASGI-ju, pa obrađuje mnogo više istodobnih zahtjeva s pozivima prema bazi/HTTP-u nego klasični sinkroni Django. Django, međutim, ima više ugrađenih funkcija.

Za što FastAPI nije prikladan?

Za zadatke intenzivne za CPU (obrada slika, teški numerički izračuni) Python je sporiji od Goa ili Rusta; njih premještate na zasebne workere. Također ne dolazi s gotovim adminom kao Django.

Treba li FastAPI ORM?

Ne nužno. Koristimo SQLAlchemy 2.0 async s Alembicom za migracije, ali možete pisati čisti SQL. ORM nije uključen, pa ga birate prema projektu.

Kako skaliram FastAPI backend?

Horizontalno: pokrećete više Uvicorn procesa pod Gunicornom, iza load balancera, uz Redis cache i teške zadatke prebačene na Celery. Stateless dizajn omogućuje dodavanje instanci prema potrebi.

4b2b.net
Poslovni ekosustav
4conta.ro
Računovodstvo
4invoices.net
Aplikacija za fakturiranje
4expenses.net
Upravljanje troškovima
4notify.net
Obavijesti
4hosting.net
Hosting
4database.net
Baze podataka
4buildsite.net
Izrada web-stranica
4myapp.net
Izrada aplikacija
4avatars.net
AI avatari
4chaty.net
AI chatbot
4webagency.net
Softver za web agencije
4softedu.net
Web-stranice za obrazovanje
4softcrm.net
CRM platforma
4softerp.net
ERP sustav
4softhr.net
Upravljanje HR-om
4mystaff.net
Portal osoblja
4myprojects.net
Upravitelj projekata
4mycontracts.net
Ugovori
4docs.net
Upravljanje dokumentima
4appointments.net
Rezervacije
4marketingonline.net
Marketing
4insurance.net
Osiguranje
4property.net
Nekretnine
4lawyers.net
Pravni softver
4mygarage.net
Autoservis
4driving.net
Autoškole
4fleet.net
Upravljanje voznim parkom
4myevents.net
Događaji
4therapy.net
Terapija
4clinics.net
Klinike
4dental.net
Stomatološke ordinacije
4restaurants.net
Restorani
4beautify.net
Salon ljepote
4gym.net
Teretane
4guards.net
Zaštitarske tvrtke
4softvet.net
Veterinarske ambulante
4softauto.net
Softver za auto-poslovanje
4construct.net
Građevinske firme
4marketplace.net
Tržnica
4shopy.net
Internetska trgovina
4pricing.net
Usporedba cijena
4salefood.net
Dostava hrane
4rentify.net
Najam
4transports.net
Transport
4agencytravel.net
Putnička agencija
4hotel.net
Upravljanje hotelima
4ong.net
Upravljanje NVO