Skalierbare API-Infrastruktur für E-Commerce-Tools

01 Herausforderung

Interne Tools wie Preiskalkulatoren, KI-Bots oder Bestands-Checker müssen sicher, schnell und zuverlässig erreichbar sein – ohne für jedes Tool die Server-Infrastruktur neu aufzusetzen.

02 Ansatz

Eine Microservices-Basis aus FastAPI als asynchronem Python-Backend und Caddy als Reverse Proxy mit automatischem HTTPS, der alle Anfragen unter /api an die Services weiterleitet.

03 Ergebnis

Neue Tools lassen sich als kleine Services unter derselben Domain wie das Frontend bereitstellen – demonstriert mit zwei Live-Demos: Text-Analyzer und KI-Code-Erklärer.

Stack
PythonFastAPIPydanticCaddyOpenRouter

Digitale Prozessoptimierung braucht eine stabile Basis. In diesem Projekt habe ich eine Microservices-Infrastruktur aufgebaut, die als Fundament für interne Business-Anwendungen dient: die Geschwindigkeit von Python (FastAPI) kombiniert mit der Sicherheit eines modernen Reverse Proxies (Caddy).

Warum diese Architektur?

Im E-Commerce ist Time-to-Market entscheidend. Neue kleine Tools sollen schnell bereitstehen – ohne jedes Mal die komplette Server-Infrastruktur neu aufzusetzen.

Security First
HTTPS
Automatische Verschlüsselung durch Caddy
Scalability
n : 1
Load Balancing auf mehrere interne Services
Efficiency
async
Ideal für I/O-lastige DB- und KI-Aufrufe
Live-Demos
2
Text-Analyzer · KI-Code-Erklärer

Architektur

Jede Anfrage aus dem Browser läuft über Caddy. Der Proxy terminiert HTTPS, entfernt das /api-Präfix und reicht die Anfrage an FastAPI weiter, das Payloads validiert und an den passenden Service übergibt.

  1. 01FrontendBrowser ruft /api/… auf derselben Domain auffetch
  2. 02CaddyAutomatisches HTTPS, Präfix /api entfernenhandle_path
  3. 03FastAPIAsynchrones Backend auf 127.0.0.1:8000Python
  4. 04ValidierungPydantic-Modelle mit LängenlimitsPydantic
  5. 05ServicesText-Pipeline und LLM-AnbindungOpenRouter
Abb. 1 — Request-Pfad vom Browser bis zum LLM-Provider

Das Backend: FastAPI

Exemplarisch laufen zwei Business-Funktionen auf der Plattform:

  1. /generate – eine Text-Analyse-Pipeline, z.B. für automatisierte Produktbeschreibungen.
  2. /ask-ai – eine Schnittstelle zu Large Language Models für den internen Support-Bot.
from fastapi import FastAPI
from pydantic import BaseModel, Field

app = FastAPI()


class TextPayload(BaseModel):
    text: str = Field(..., max_length=500)


class AssistantPayload(BaseModel):
    prompt: str = Field(..., max_length=2000)
    model: str = Field("example/free-model")


@app.post("/api/text-tools")
async def text_tools(payload: TextPayload):
    value = payload.text
    return {
        "uppercase": value.upper(),
        "length": len(value),
    }


@app.get("/api/models")
async def list_models():
    # In der Praxis werden freie Modelle aus einem Provider geladen.
    return {
        "models": [
            {"id": "provider/model-a:free", "name": "Model A Free"},
            {"id": "provider/model-b:free", "name": "Model B Free"},
        ]
    }


@app.post("/api/assistant")
async def assistant(payload: AssistantPayload):
    # In der Praxis: Validierung, Rate-Limit, Provider-Request, Error-Handling.
    return {"result": f"Erklaerung fuer Modell {payload.model}"}

Der Webserver: Caddy

Damit die API unter derselben Domain wie das Frontend erreichbar ist, entfernt Caddy per handle_path das /api-Präfix, bevor die Anfrage an FastAPI geht:

handle_path /api/* {
    reverse_proxy 127.0.0.1:8000
}

Live-Demo: Text-Analyzer

Geben Sie einen Text ein – er wird an /api/generate gesendet und vom Python-Backend analysiert. Ist das Backend nicht erreichbar, erscheint eine Fehlermeldung.

Text Analyse API

Ergebnisse erscheinen hier…

Erweiterung: KI-Code-Erklärer

Das zweite Beispiel nutzt den /ask-ai-Endpunkt: Ein Code-Schnipsel wird vom Backend sicher an ein LLM (via OpenRouter) weitergeleitet. Die verfügbaren Modelle lädt die Demo beim Start über /api/models.

KI Code-Erklärer

Mit dem Absenden wird Ihr Text an OpenRouter (USA) und den Anbieter des gewählten Modells übermittelt, die Eingaben ggf. protokollieren. Bitte keine personenbezogenen oder vertraulichen Daten eingeben. Details in der Datenschutzerklärung.

Die Erklärung der KI erscheint hier…

Learnings

  • Ein Proxy, viele Tools: Mit handle_path hängt jeder neue Service unter derselben Domain – kein CORS, kein eigenes Zertifikat pro Tool.
  • Validierung an der Grenze: Pydantic-Längenlimits (500 bzw. 2.000 Zeichen) greifen serverseitig; die Demo prüft zusätzlich clientseitig für schnelleres Feedback.
  • Secrets bleiben im Backend: API-Key und System-Prompt liegen ausschließlich auf dem Server, der Browser sieht nur das Ergebnis.