FastAPI
Áttekintés
A FastAPI egy modern, nagy teljesítményű Python webkeretrendszer API-k építéséhez. Automatikus interaktív dokumentációt, típusellenőrzést és async támogatást biztosít alapból.
Gyorsindítás
Repository létrehozása sablonból
A vezérlőpultodon menj a Tools & Deployment fülre. Kattints a "New Repository" gombra, válaszd ki a FastAPI sablont a legördülő menüből, add meg a repository nevét és az aldomaint, majd kattints a "Create Repository" gombra.
Repository klónozása
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Függőségek telepítése
pip install -r requirements.txt
Fejlesztői szerver indítása
uvicorn app.main:app --reload
A szerver a http://localhost:8000 címen fut. Interaktív API dokumentáció elérhető: http://localhost:8000/docs.
Változtatások feltöltése
git add .
git commit -m "Initial setup"
git push origin main
Helyi fejlesztés Dockerrel
Ha nincs Python telepítve a gépedre, használhatod a Dockert a FastAPI alkalmazásod futtatásához.
Parancsok futtatása Dockerrel
# Függőségek telepítése
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Fejlesztői szerver futtatása
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && uvicorn app.main:app --host 0.0.0.0 --reload"
Adatbázis konfiguráció
Az NStrim platform MySQL/MariaDB adatbázist biztosít számodra. Konfiguráld a kapcsolatot az .env fájlban vagy közvetlenül az adatbázis konfigurációs modulban.
DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
student01). Ellenőrizd a vezérlőpult hitelesítő adatok részét a pontos értékekért.Projekt struktúra
├── app/
│ ├── main.py # FastAPI alkalmazás belépési pont
│ ├── routers/ # Útvonal modulok
│ ├── models/ # SQLAlchemy modellek
│ ├── schemas/ # Pydantic sémák
│ └── database.py # Adatbázis kapcsolat
├── templates/ # Jinja2 sablonok
├── static/ # CSS, JS, képek
├── requirements.txt # Python függőségek
└── Dockerfile # Docker konfig
Gyakori feladatok
API végpont létrehozása
from fastapi import APIRouter
router = APIRouter()
@router.get("/users")
async def get_users():
return [{"name": "Alice"}, {"name": "Bob"}]
@router.post("/users")
async def create_user(name: str, email: str):
return {"name": name, "email": email}
SQLAlchemy használata
from sqlalchemy import Column, Integer, String
from app.database import Base
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
name = Column(String(100))
email = Column(String(255), unique=True)
Pydantic séma validáláshoz
from pydantic import BaseModel
class UserCreate(BaseModel):
name: str
email: str
class UserResponse(BaseModel):
id: int
name: str
email: str
class Config:
from_attributes = True
Hasznos parancsok
uvicorn app.main:app --reload
Fejlesztői szerver indítása automatikus újratöltéssel
pip install -r requirements.txt
Függőségek telepítése
pip freeze > requirements.txt
Jelenlegi függőségek mentése
Hibaelhárítás
OperationalError: Can't connect to MySQL server
Ok: Az adatbázis host helytelen vagy nem elérhető.
Megoldás: Ellenőrizd, hogy a DATABASE_URL megegyezik-e a vezérlőpulton megjelenő adatbázis hosttal.
ModuleNotFoundError: No module named 'app'
Megoldás: Győződj meg róla, hogy a uvicorn-t a projekt gyökérkönyvtárából futtatod, és hogy az app/__init__.py fájl létezik.
422 Unprocessable Entity
Megoldás: A FastAPI automatikusan validálja a kérés adatait. Ellenőrizd a válasz törzsét a validációs hibák részleteiért. Látogasd meg a /docs oldalt az elvárt kérés formátum megtekintéséhez.