Skip to content

Cum să creezi un API REST în Python cu FastAPI și Flask

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să creezi un API REST în Python cu FastAPI și Flask. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Un API REST (Representational State Transfer) îți permite să expui date și funcționalități printr-un set de endpoint-uri HTTP. În acest ghid vei învăța cum să construiești un API REST în Python cu FastAPI și Flask.

Problema

Vrei să expui date sau servicii printr-un API, dar nu știi de unde să începi. Fără un API REST, aplicațiile client nu pot interacționa eficient cu serverul tău.

Soluția Rapidă

1. Alege framework-ul potrivit

FastAPI este recomandat pentru API-uri moderne datorită performanței și validării automate cu Pydantic. Flask este ideal pentru proiecte mici sau când ai nevoie de control total.

2. Instalează dependințele

# Pentru FastAPI
pip install fastapi uvicorn

# Pentru Flask
pip install flask

3. Creează un API minim

FastAPI:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def citeste():
    return {"mesaj": "Salut, lume!"}

@app.get("/utilizatori/{id}")
def utilizator(id: int):
    return {"id": id, "nume": "John Doe"}

Rulează cu uvicorn main:app --reload.

Flask:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/")
def citeste():
    return jsonify({"mesaj": "Salut, lume!"})

@app.route("/utilizatori/<int:id>")
def utilizator(id):
    return jsonify({"id": id, "nume": "John Doe"})

Rulează cu flask run.

4. Testează API-ul

curl http://127.0.0.1:8000/utilizatori/1

Output:

{"id": 1, "nume": "John Doe"}

Prevenție

  • Folosește type hints cu FastAPI pentru validare automată a datelor
  • Organizează rutele pe resurse (ex: /utilizatori, /produse, /comenzi)
  • Adaugă prefixe de versionare din prima zi
  • Nu returna obiecte brute Python -- FastAPI le serializează automat, Flask necesită jsonify()

Greșeli Comune

  1. Returnarea string-urilor simple în loc de JSON -- Flask necesită jsonify() explicit, altfel returnează plain text
  2. Ignorarea codurilor de status HTTP -- un API REST corect folosește 201 pentru creare, 204 pentru ștergere, 404 pentru resurse lipsă
  3. Expunerea detaliilor de eroare în producție -- dezactivează debug=True și configurează handlere de erori personalizate
  4. Lipsa tipizării parametrilor -- în FastAPI, type hints asigură validare și documentare automată
  5. Toată logica într-un singur fișier -- separă rutele, modelele și logica de business

Exercițiu Practic

Creează un API REST cu un endpoint POST /utilizatori care primește nume și email în JSON și returnează utilizatorul creat cu un ID generat și status 201.

FAQ

### Ce diferență este între FastAPI și Flask?

FastAPI oferă validare automată cu Pydantic, documentație Swagger integrată și performanță ridicată. Flask este mai simplu și mai flexibil, dar necesită extensii terțe pentru validare și documentare.

Am nevoie de un framework pentru un API REST?

Da, un framework gestionează rutarea, parsarea request-urilor și serializarea response-urilor. Poți folosi și http.server, dar nu este recomandat pentru producție din cauza lipsei de securitate și performanță.

Ce port ar trebui să folosesc?

Portul implicit 8000 pentru FastAPI și 5000 pentru Flask. În producție, rulează în spatele unui proxy invers precum Nginx pe portul 80 sau 443.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro