FastAPI

Teljes telepítési útmutató: FastAPI az NStrim platformon

Á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.

Mielőtt elkezdenéd
Győződj meg róla, hogy a vezérlőpultod nyitva van - szükséged lesz az ott megjelenített Git hitelesítő adatokra. Ez a sablon tartalmazza a FastAPI, Uvicorn, SQLAlchemy ORM, PyMySQL driver, Pydantic és Jinja2 sablonmotor csomagokat.

Gyorsindítás

1

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.

2

Repository klónozása

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Függőségek telepítése

pip install -r requirements.txt
4

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.

5

Változtatások feltöltése

git add .
git commit -m "Initial setup"
git push origin main
Minden Git push automatikusan telepíti az alkalmazásodat. Ellenőrizd a Modul munka URL-t a vezérlőpultodon az élő oldal megtekintéséhez.

Helyi fejlesztés Dockerrel

Ha nincs Python telepítve a gépedre, használhatod a Dockert a FastAPI alkalmazásod futtatásához.

Mi az a Docker?
A Docker izolált konténereket hoz létre az összes szükséges szoftverrel (Python, pip) anélkül, hogy telepítened kellene őket a számítógépedre.

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>
Fontos
Az adatbázis neve és felhasználóneve általában megegyezik a vezérlőpulton megjelenő felhasználóneveddel (pl. 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.

Telepítési munkafolyamat

Kód módosítás git push pip install Éles!
További információért látogasd meg a hivatalos FastAPI dokumentációt.