package example import ( "encoding/json" "net/http" ) // NormalizeHandler ist das E2E-Test-Beispiel (QA-01): ein echter // HTTP-Endpunkt, gegen den ein Test einen vollständigen Request-Response- // Zyklus fährt (httptest.Server, echter TCP-Roundtrip, kein reiner // Funktionsaufruf). Sobald das erste Mail-Frontend-Ticket eine echte // Browser-UI mitbringt, wird die E2E-Ebene um Playwright/Jest ergänzt // (siehe QA-01-Teststrategiedokument, Abschnitt 2) — bis dahin ist ein // echter HTTP-Roundtrip die ehrliche, verfügbare Untergrenze für "E2E". type normalizeRequest struct { Address string `json:"address"` } type normalizeResponse struct { Normalized string `json:"normalized"` } func NormalizeHandler(w http.ResponseWriter, r *http.Request) { var req normalizeRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, "ungültiger request-body", http.StatusBadRequest) return } normalized, err := NormalizeAddress(req.Address) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } w.Header().Set("Content-Type", "application/json") _ = json.NewEncoder(w).Encode(normalizeResponse{Normalized: normalized}) }