chi Go: vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist chi und warum wird es benötigt?

chi ist ein leichtgewichtiger, hochperformanter und idiomatischer HTTP-Router für die Programmiersprache Go. Er wurde für die Entwicklung von Webanwendungen und APIs entwickelt und bietet Entwicklern ein leistungsstarkes und flexibles Werkzeug für die Routenverwaltung von HTTP-Anfragen.

Im Gegensatz zum Standardpaket net/http bietet chi:

  • Kompatibilität mit net/http: chi implementiert vollständig das http.Handler-Interface, was eine einfache Integration mit vorhandenem Go-Code und Middleware ermöglicht.
  • Kontextbasiertes Routing: chi verwendet context.Context, um Routenparameter (z. B. Benutzer-ID) zwischen Middleware und Handlern zu übergeben.
  • Verschachtelte Routen (Subrouters): Ermöglicht die Gruppierung von Routen in logischen Blöcken (z. B. /api/v1/users).
  • Middleware-Gruppierung: Middleware kann sowohl auf den gesamten Router als auch auf einzelne Routengruppen angewendet werden.
  • Integrierte Unterstützung für CORS, Logging, Komprimierung und andere häufige Aufgaben.

chi ist ideal für die Erstellung von REST-APIs, Microservices und allen Webanwendungen, die eine saubere, leistungsstarke und einfach testbare Architektur erfordern.

Installation von chi

Verwenden Sie zur Installation von chi den standardmäßigen Go-Paketmanager. Stellen Sie sicher, dass Go (Version 1.14 oder höher) installiert ist.

go get -u github.com/go-chi/chi/v5

Nach Ausführung dieses Befehls wird die Bibliothek zu Ihrer go.mod-Datei hinzugefügt. Wenn Sie Go Modules (empfohlen) verwenden, sieht der Import wie folgt aus:

import "github.com/go-chi/chi/v5"

Häufig wird auch das Middleware-Paket installiert:

go get -u github.com/go-chi/cors
go get -u github.com/go-chi/chi/v5/middleware

Schnellstart mit Codebeispiel

Erstellen wir einen einfachen HTTP-Server, der auf GET-Anfragen antwortet.

package main

import (
    "fmt"
    "net/http"

    "github.com/go-chi/chi/v5"
)

func main() {
    r := chi.NewRouter()

    // Route definieren
    r.Get("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hallo, chi!")
    })

    // Server starten
    http.ListenAndServe(":3000", r)
}

Starten Sie diesen Code und öffnen Sie Ihren Browser unter http://localhost:3000/hello. Sie sehen die Nachricht "Hallo, chi!".

Wichtige Methoden und Funktionen von chi

Betrachten wir die wichtigsten Methoden der chi-Bibliothek. Alle Beispiele gehen davon aus, dass Sie bereits einen Router r := chi.NewRouter() erstellt haben.

1. Get(pattern string, handlerFn http.HandlerFunc)

Funktion: Registriert einen Handler für die HTTP-Methode GET unter dem angegebenen Pfadmuster.

Parameter:

  • pattern — Pfadzeichenfolge (z. B. /users, /users/{id}).
  • handlerFn — Handler-Funktion, die der Signatur http.HandlerFunc entspricht.

Beispiel:

r.Get("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Startseite"))
})

2. Post(pattern string, handlerFn http.HandlerFunc)

Funktion: Registriert einen Handler für die HTTP-Methode POST.

Parameter: Analog zu Get.

Beispiel:

r.Post("/users", func(w http.ResponseWriter, r *http.Request) {
    // Logik zum Erstellen eines Benutzers
    w.WriteHeader(http.StatusCreated)
    w.Write([]byte("Benutzer erstellt"))
})

3. Put(pattern string, handlerFn http.HandlerFunc)

Funktion: Registriert einen Handler für die HTTP-Methode PUT (wird normalerweise für vollständige Aktualisierungen verwendet).

Empfehlungen