Zum Hauptinhalt springen
Blog & News

Aktuelles & Updates von
Joomla, Wordpress und Co.

News, HowTos und Tutorials rund um Webdesign, Webentwicklung, Webhosting und Digitalisierung.

Blog & News

REST-API mit Python und FastAPI

15.09.2025 · 2 Min Lesezeit

In diesem Beispiel versuchen wir eine kleine REST-API mit Python aufzubauen.

Installation

Zuerst brauchst du FastAPI und einen ASGI-Server wie Uvicorn:

pip install fastapi uvicorn

 

Beispiel: Kleine User-API

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

# Datenmodell (User)
class User(BaseModel):
id: int
name: str
email: str

# Fake-Datenbank (Liste im Speicher)
users_db = [
User(id=1, name="Alice", email="Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein."),
User(id=2, name="Bob", email="Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein."),
]

# 1) Alle User abrufen
@app.get("/users")
def get_users():
return users_db

# 2) User nach ID abrufen
@app.get("/users/{user_id}")
def get_user(user_id: int):
for user in users_db:
if user.id == user_id:
return user
raise HTTPException(status_code=404, detail="User not found")

# 3) Neuen User anlegen
@app.post("/users", status_code=201)
def create_user(user: User):
users_db.append(user)
return user

# 4) User aktualisieren
@app.put("/users/{user_id}")
def update_user(user_id: int, updated_user: User):
for index, user in enumerate(users_db):
if user.id == user_id:
users_db[index] = updated_user
return updated_user
raise HTTPException(status_code=404, detail="User not found")

# 5) User löschen
@app.delete("/users/{user_id}", status_code=204)
def delete_user(user_id: int):
for index, user in enumerate(users_db):
if user.id == user_id:
del users_db[index]
return
raise HTTPException(status_code=404, detail="User not found")

 

Server starten

Speichere den Code z. B. als main.py und starte den Server:

uvicorn main:app --reload

 

Beispiel-Requests

Mit cURL oder httpie:

User erstellen:

curl -X POST http://127.0.0.1:8000/users \
-H "Content-Type: application/json" \
-d '{"id":3,"name":"Charlie","email":"Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein."}'

Zurück zur Übersicht