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
- 
Die API läuft dann unter: 
 http://127.0.0.1:8000
- 
Automatische API-Dokumentation: 
 Swagger UI:http://127.0.0.1:8000/docs
 ReDoc:http://127.0.0.1:8000/redoc
Beispiel-Requests
Mit cURL oder httpie:
- 
Alle User abrufen: 
- curl http://127.0.0.1:8000/users
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!"}'






