Go Academy · Lektion

Antwort-Hilfsfunktionen und Statuscodes

c.JSON, c.AbortWithError und Fehlerantworten

Lektion 3 von 413 Schritte

Antwort-Hilfsfunktionen und Statuscodes ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

c.JSON

c.JSON(statusCode, obj) serialisiert obj als JSON und setzt Content-Type auf application/json. Dies ist die am häufigsten verwendete Methode für Antworten.

c.JSON(http.StatusOK, gin.H{
    "id":   user.ID,
    "name": user.Name,
})

gin.H

gin.H ist eine Kurzform für map[string]any. Verwenden Sie es für spontan erstellte JSON-Objekte, ohne ein Struct zu definieren.

c.JSON(200, gin.H{"message": "created", "id": id})

HTTP-Statuskonstanten

Verwenden Sie zur besseren Verständlichkeit http.Status*-Konstanten anstelle von unkommentierten Zahlen:

c.JSON(http.StatusCreated, gin.H{"id": id})
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid input"})
c.JSON(http.StatusInternalServerError, gin.H{"error": "internal error"})

c.String und c.Data

Senden Sie einfachen Text mit c.String oder beliebige Bytes mit c.Data:

c.String(200, "Hello, %s!", name)
c.Data(200, "application/octet-stream", fileBytes)

c.File und c.FileAttachment

Stellen Sie eine Datei von der Festplatte bereit – direkt im Browser oder als Download:

c.File("./public/report.pdf")           // inline
c.FileAttachment("./report.pdf", "report.pdf") // download

c.Redirect

Senden Sie eine HTTP-Weiterleitung (301 dauerhaft, 302 vorübergehend):

c.Redirect(http.StatusMovedPermanently, "/new-url")

c.AbortWithStatus

Beendet die Verarbeitungskette der Anfrage und schreibt eine leere Antwort mit dem angegebenen Statuscode. Anders als c.JSON ruft die Methode Abort auf, damit nachfolgende Handler nicht ausgeführt werden.

c.AbortWithStatus(http.StatusUnauthorized)

c.Error

Fügen Sie dem Kontext Fehler hinzu, ohne eine Antwort zu schreiben. Eine Middleware kann diese sammeln und am Ende eine einheitliche Fehlerantwort schreiben.

c.Error(fmt.Errorf("database error: %w", err))

Antwort-Header

Setzen Sie benutzerdefinierte Antwort-Header, bevor Sie c.JSON oder c.Data aufrufen:

c.Header("X-Request-ID", requestID)
c.Header("Cache-Control", "max-age=3600")

XML rendern

Gin unterstützt auch XML- und YAML-Antworten:

c.XML(200, user) // requires xml struct tags
c.YAML(200, user)

Benutzerdefiniertes Antwort-Struct

Definieren Sie einen standardisierten API-Antwort-Wrapper für eine einheitliche Struktur über alle Endpunkte hinweg:

type APIResponse struct {
    Success bool   `json:"success"`
    Data    any    `json:"data,omitempty"`
    Error   string `json:"error,omitempty"`
}

Kurze Überprüfung

Was macht c.AbortWithStatus anders als c.Status?

Zusammenfassung: Antwort-Hilfsfunktionen

Wichtige Punkte:

  • c.JSON(statusCode, obj) ist die wichtigste Methode für JSON-Antworten
  • Verwenden Sie zur besseren Verständlichkeit http.Status*-Konstanten
  • c.AbortWithStatus beendet die Handlerkette
  • Definieren Sie für alle Endpunkte einen einheitlichen APIResponse-Wrapper
Kostenlos starten

Lerne Go mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
51
Lektionen
203

Häufig gestellte Fragen

Ist die Lektion „Antwort-Hilfsfunktionen und Statuscodes“ kostenlos?

Ja — der vollständige Text von „Antwort-Hilfsfunktionen und Statuscodes“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Antwort-Hilfsfunktionen und Statuscodes“?

c.JSON, c.AbortWithError und Fehlerantworten Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Antwort-Hilfsfunktionen und Statuscodes“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Gin-Router und Routengruppen
  2. Request-Binding und Validierung
  3. Antwort-Hilfsfunktionen und Statuscodes
  4. Gin-Middleware: Authentifizierung und Logging
← Zurück zu Go Academy