Technologie

← Domů
Backend a API

Backend v Pythonu a FastAPI — moderní a škálovatelná API

FastAPI je referenční pythonový framework pro asynchronní REST API. Spojuje nativní type hints Pythonu s automatickou validací Pydantic, automaticky generovanou dokumentací OpenAPI a výkonem ASGI srovnatelným s Node.js — bez obětování čitelnosti kódu.

FastAPI — nejrychlejší framework v Pythonu

FastAPI běží na Uvicornu (ASGI server) s Gunicornem pro více procesů v produkci. Jednoduchý endpoint čtoucí z cache Redis odpovídá na běžném hardwaru pod 5 ms. Nativní Dependency Injection umožňuje izolované testování libovolné vrstvy bez složitých mocků: autentizace, databázová session, rate limiting — každé z nich je injektovatelná závislost.

Dokumentace OpenAPI 3.1 se generuje automaticky z type hints — Swagger UI a ReDoc jsou ve vývoji dostupné na `/docs` a `/redoc`. Schéma Pydantic v2 (validátor napsaný v Rustu) validuje požadavky i odpovědi 10–20× rychleji než Pydantic v1. Každé neplatné pole vrátí chybu 422 s jasnými, lokalizovanými chybovými hláškami.

  • Nativní async/await — neblokující I/O u všech operací s DB i HTTP
  • BackgroundTasks pro operace po odeslání odpovědi (e-mail, webhook, log)
  • Nativní podpora WebSocketů pro funkce v reálném čase (chat, notifikace)
  • Rate limiting se slowapi (postavené na limits) — per IP i per uživatel
  • Middleware CORS, komprese (gzip/brotli), request ID, měření času

PostgreSQL, SQLAlchemy a Alembic

Pro všechny operace s databází používáme asynchronní SQLAlchemy 2.0 (ovladač asyncpg). Modely definujeme pomocí typů Mapped — typově bezpečně, bez řetězců. Složité dotazy píšeme v SQLAlchemy Core (kontrola při kompilaci) nebo v čistém SQL přes `text()` s bind parametry — nikdy ne interpolací řetězců (úplná prevence SQL injection).

Migrace Alembic se automaticky generují ze změn modelu a před nasazením se ručně kontrolují. Každá migrace má otestované `upgrade()` i `downgrade()`. V produkci migrace běží v CI před nasazením — databáze je vždy v synchronizaci s kódem. Connection pooling přes asyncpg s velikostí poolu nastavitelnou pro každou službu.

  • Row-level locking přes `SELECT ... FOR UPDATE` pro kritické souběžné operace
  • Fulltextové vyhledávání s pg_trgm a tsvector — bez Elasticsearche pro jednoduché případy
  • JSONB pro polostrukturovaná data s indexací GIN
  • Partitioned tables pro tabulky s miliony řádků (logy, události)

Cache v Redisu a horizontální škálování

Redis 7 používáme pro aplikační cache (TTL pro každý endpoint), úložiště session (refresh tokeny JWT s selektivním odvoláním), pub/sub pro události v reálném čase a fronty pro úlohy na pozadí (Celery nebo ARQ). Strategií cachování je cache-aside s explicitní invalidací — žádné slepé TTL, které může podávat zastaralá data.

  • Autentizace JWT s access tokenem (15 min) + refresh tokenem v Redisu (7 dní)
  • Celery + broker Redis pro asynchronní úlohy (generování PDF, e-mail, importy)
  • Health check endpoint `/health` se stavem DB, Redisu a verzí nasazení
  • Strukturované logování v JSON (structlog) — kompatibilní s Loki/Datadog/ELK

Výhody a omezení

Výhody

  • Výkon ASGI srovnatelný s Node.js a Go u I/O operací.
  • Dokumentace OpenAPI generovaná automaticky z type hints.
  • Rychlá validace Pydantic v2 s jasnými chybami 422.
  • Čitelný kód, Python známý většině týmů.

Omezení

  • Python je u úloh náročných na CPU stále pomalejší než Go nebo Rust.
  • async/await vyžaduje disciplínu — jediné blokující volání zablokuje celou event loop.
  • Mladší ekosystém než Django, pokud jde o funkce „vše v balení“.
  • Neobsahuje vestavěné ORM ani administraci — vybíráte je zvlášť.

Stručný verdikt

FastAPI zvolte pro asynchronní REST API, mikroslužby a backendy pro SPA/mobilní aplikace. Pro extrémně CPU-bound aplikace nebo monolity s hotovou administrací mohou být vhodnější Go, respektive Django.

Tabulka specifikací

SchopnostLimit / práhTypické použití
Souběžnostasync/await, neblokující I/OCPU-bound úlohy vyžadují samostatné workeryAPI s mnoha voláními DB/HTTP
Latencecache Redis na endpointuRoste se serializací velkých payloadůBackend pro SaaS, mobilní aplikace, real-time
Validace a dokumentacePydantic v2 + automatické OpenAPI 3.1Složité schéma prodlužuje čas startuVeřejná API se Swaggerem/ReDoc
Typické nákladyOpen source, běží na 1 vCPUHorizontální škálování vyžaduje více procesůOd MVP po produkci

FastAPI vs. alternativy

KritériumFastAPIDjango / Express
Asynchronní výkonVýborný (nativní ASGI)Django částečně, Express dobrý
Automatická dokumentace OpenAPIAno, z type hintsVyžaduje další balíčky
Vestavěná administrace / ORMNe (vybíráte zvlášť)Django: ano; Express: ne

Často kladené otázky

Je FastAPI rychlejší než Django?

Ano u I/O. FastAPI běží asynchronně na ASGI, takže zvládne mnohem více souběžných požadavků s voláními DB/HTTP než klasické synchronní Django. Django však nabízí více vestavěných funkcí.

Pro co FastAPI není vhodné?

U úloh silně náročných na CPU (zpracování obrazu, těžké numerické výpočty) je Python pomalejší než Go nebo Rust; takové úlohy přesouváte na samostatné workery. Také nepřichází s hotovou administrací jako Django.

Potřebuje FastAPI ORM?

Nutně ne. Používáme asynchronní SQLAlchemy 2.0 s Alembicem pro migrace, ale můžete psát čisté SQL. ORM není součástí, takže ho volíte podle projektu.

Jak škálovat backend ve FastAPI?

Horizontálně: spustíte více procesů Uvicornu pod Gunicornem za load balancerem, s cache v Redisu a těžkými úlohami přesunutými do Celery. Stateless design umožňuje přidávat instance podle potřeby.

4b2b.net
Podnikatelský ekosystém
4conta.ro
Účetnictví
4invoices.net
Fakturační aplikace
4expenses.net
Správa výdajů
4notify.net
Oznámení
4hosting.net
Hosting
4database.net
Databáze
4buildsite.net
Tvorba webů
4myapp.net
Tvorba aplikací
4avatars.net
AI avataři
4chaty.net
AI chatbot
4webagency.net
Software pro webové agentury
4softedu.net
Weby pro vzdělávání
4softcrm.net
CRM platforma
4softerp.net
ERP systém
4softhr.net
Personalistika
4mystaff.net
Portál pro zaměstnance
4myprojects.net
Správa projektů
4mycontracts.net
Smlouvy
4docs.net
Správa dokumentů
4appointments.net
Rezervace termínů
4marketingonline.net
Marketing
4insurance.net
Pojištění
4property.net
Reality
4lawyers.net
Software pro advokáty
4mygarage.net
Autoservis
4driving.net
Autoškoly
4fleet.net
Správa vozového parku
4myevents.net
Události
4therapy.net
Terapie
4clinics.net
Kliniky
4dental.net
Zubní ordinace
4restaurants.net
Restaurace
4beautify.net
Kosmetický salon
4gym.net
Fitness centra
4guards.net
Bezpečnostní agentury
4softvet.net
Veterinární ordinace
4softauto.net
Software pro autobyznys
4construct.net
Stavební firmy
4marketplace.net
Marketplace
4shopy.net
E-shop
4pricing.net
Porovnání cen
4salefood.net
Rozvoz jídla
4rentify.net
Pronájmy
4transports.net
Doprava
4agencytravel.net
Cestovní kancelář
4hotel.net
Hotelový systém
4ong.net
Správa neziskovek