Einführung
FastAPI ist ein modernes, leistungsfähiges Web-Framework für die Erstellung von RESTful-APIs mit Python. Durch die Nutzung asynchroner Programmierung und automatischer Datenvalidierung können Sie mit FastAPI schnell und effizient skalierbare APIs erstellen. In diesem Tutorial lernen Sie, wie Sie eine reale API erstellen, die Produktdaten für ein E-Commerce-Szenario bereitstellt. Wir behandeln die Erstellung von Endpunkten, die Eingabevalidierung mit Pydantic-Modellen, das Ausführen und Testen der API und die Untersuchung von Bereitstellungsstrategien für eine produktionsreife API.
Erforderliche Pakete importieren
Um unseren Code zu organisieren und Wiederholungen zu vermeiden, importieren wir zunächst die erforderlichen Pakete. Dadurch wird sichergestellt, dass alle nachfolgenden Codeblöcke Zugriff auf die erforderlichen Bibliotheken haben.
#|label: import-packages
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
Erstellen einer grundlegenden FastAPI-Anwendung mit Beispielsdaten aus der realen Welt
Wir beginnen mit der Initialisierung einer FastAPI-Anwendung und der Erstellung von Endpunkten. In unserem Beispiel wird die API Produktdaten für ein E-Commerce-Szenario bereitstellen.
Grundlegendes API-Beispiel
#|label: create-app
= FastAPI()
app
@app.get("/")
def read_root():
return {"message": "Welcome to the FastAPI Products API!"}
class Product(BaseModel):
id: int
str
name: float
price: str
category:
# Beispiel Produktdaten.
= [
products "id": 1, "name": "Wireless Mouse", "price": 29.99, "category": "Electronics"},
{"id": 2, "name": "Bluetooth Headphones", "price": 59.99, "category": "Electronics"},
{"id": 3, "name": "Coffee Maker", "price": 79.99, "category": "Home Appliances"},
{"id": 4, "name": "Electric Kettle", "price": 39.99, "category": "Home Appliances"},
{"id": 5, "name": "Smartphone Stand", "price": 19.99, "category": "Accessories"}
{
]
@app.get("/api/products", response_model=list[Product])
def get_products():
return products
if __name__ == "__main__":
# Führen Sie die Anwendung auf Port 8000 mit aktiviertem Debugging aus.
import uvicorn
="0.0.0.0", port=8000) uvicorn.run(app, host
Ausführen und Testen der API
Um Ihre Flask-API auszuführen, führen Sie Ihr Skript z. B. mit python api.py
aus.
Sobald Ihre API ausgeführt wird, können Sie auf sie zugreifen, indem Sie http://localhost:5000/
in Ihrem Webbrowser aufrufen.
Testen Ihrer API
Testen Sie Ihre API mit cURL oder Postman. Sie können zum Beispiel die folgenden Befehle in Ihrem Terminal ausführen:
curl http://127.0.0.1:8000/
curl http://127.0.0.1:8000/api/products
Diese Befehle sollten JSON-Antworten mit einer Willkommensnachricht bzw. den Produktdaten zurückgeben.
Fehlerbehandlung und Eingabevalidierung
FastAPI verwendet Pydantic-Modelle zur Validierung von Eingabedaten. Darüber hinaus wird durch eine angemessene Fehlerbehandlung sichergestellt, dass Ihre API auf fehlerhafte Anfragen angemessen reagiert.
Beispiel: Erweiterter Endpunkt mit Validierung
#|label: enhanced-endpoint
@app.get("/api/product/{product_id}", response_model=Product)
def get_product(product_id: int):
for product in products:
if product["id"] == product_id:
return product
raise HTTPException(status_code=404, detail="Product not found")
Dieser Endpunkt ruft ein Produkt anhand seiner ID ab, und wenn das Produkt nicht gefunden wird, wird ein 404-Fehler ausgegeben.
Strategien für die Bereitstellung
Für den produktiven Einsatz sollten Sie diese Strategien in Betracht ziehen:
Uvicorn mit Gunicorn:
Stellen Sie Ihre FastAPI-Anwendung mit Gunicorn und Uvicorn Workern bereit, um die Leistung zu verbessern:gunicorn --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 your_script:app
Containerisierung:
Verwenden Sie Docker zur Containerisierung Ihrer Anwendung. Ein Beispiel für ein Dockerfile ist unten abgebildet.
Dockerfile Beispiel
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "--workers", "4", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000", "your_script:app"]
Ersetzen Sie your_script
durch den Namen Ihrer Python-Datei, die die FastAPI-Anwendung enthält.
Ausführen und Testen der API (Rekapitulation)
Nach der Bereitstellung können Sie Tools wie cURL, Postman oder automatisierte Test-Frameworks verwenden, um Ihre Endpunkte zu überprüfen und sicherzustellen, dass sich Ihre API in der Produktion wie erwartet verhält.
Schlussfolgerung
FastAPI bietet ein modernes, effizientes und benutzerfreundliches Framework für die Erstellung von RESTful APIs in Python. Mit diesem Leitfaden haben Sie gelernt, wie Sie eine reale API mit Produktdaten erstellen, Eingabevalidierung und Fehlerbehandlung implementieren und Bereitstellungsstrategien für produktionsreife Anwendungen untersuchen. Mit diesen Fähigkeiten können Sie skalierbare APIs erstellen, die moderne Webanwendungen und datengesteuerte Dienste unterstützen.
Weiterführende Literatur
- Erstellen Sie Ihre erste API mit Flask
- Web Scraping mit BeautifulSoup
- Python-Automatisierung: Zeitplanung und Aufgabenautomatisierung
Viel Spaß beim Programmieren und beim Erstellen und Bereitstellen Ihrer RESTful API mit FastAPI!
Weitere Artikel erkunden
Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.
Wiederverwendung
Zitat
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Erstellen von REST-APIs mit FastAPI: Ein modernes
Python-Framework},
date = {2024-02-08},
url = {https://www.datanovia.com/de/learn/programming/python/tools/fastapi-rest-api.html},
langid = {de}
}