chi pour Go : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que chi et pourquoi l'utiliser ?

chi est un routeur HTTP léger, performant et idiomatique pour le langage de programmation Go. Conçu pour le développement d'applications web et d'API, il offre aux développeurs un outil puissant et flexible pour le routage des requêtes HTTP.

Contrairement au package standard net/http, chi propose :

  • Compatibilité avec net/http : chi implémente entièrement l'interface http.Handler, ce qui permet une intégration facile avec le code Go existant et les middleware.
  • Routage contextuel : chi utilise context.Context pour transmettre les paramètres de route (par exemple, l'ID d'un utilisateur) entre les middleware et les gestionnaires.
  • Sous-routeurs (Subrouters) : Permet de regrouper les routes par blocs logiques (par exemple, /api/v1/users).
  • Regroupement de middleware : Vous pouvez appliquer des middleware à l'ensemble du routeur ou à des groupes de routes spécifiques.
  • Support intégré pour CORS, la journalisation, la compression et d'autres tâches courantes.

chi est idéal pour créer des API REST, des microservices et toute application web nécessitant une architecture propre, performante et facile à tester.

Installation de chi

Pour installer chi, utilisez le gestionnaire de packages standard de Go. Assurez-vous d'avoir Go (version 1.14 ou supérieure) installé.

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

Après avoir exécuté cette commande, la bibliothèque sera ajoutée à votre fichier go.mod. Si vous utilisez Go Modules (recommandé), l'importation ressemblera à ceci :

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

Il est également courant d'installer le package middleware :

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

Démarrage rapide avec un exemple de code

Créons un serveur HTTP simple qui répond aux requêtes GET.

package main

import (
    "fmt"
    "net/http"

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

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

    // Définir une route
    r.Get("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Bonjour, chi !")
    })

    // Lancer le serveur
    http.ListenAndServe(":3000", r)
}

Exécutez ce code et ouvrez votre navigateur à l'adresse http://localhost:3000/hello. Vous verrez le message "Bonjour, chi !".

Méthodes et fonctions principales de chi

Examinons les méthodes clés de la bibliothèque chi. Tous les exemples supposent que vous avez déjà créé un routeur r := chi.NewRouter().

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

Fonction : Enregistre un gestionnaire pour la méthode HTTP GET selon le modèle de chemin spécifié.

Paramètres :

  • pattern — une chaîne de chemin (par exemple, /users, /users/{id}).
  • handlerFn — une fonction de gestionnaire correspondant à la signature http.HandlerFunc.

Exemple :

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

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

Fonction : Enregistre un gestionnaire pour la méthode HTTP POST.

Paramètres : Similaires à Get.

Exemple :

r.Post("/users", func(w http.ResponseWriter, r *http.Request) {
    // Logique de création d'utilisateur
    w.WriteHeader(http.StatusCreated)
    w.Write([]byte("Utilisateur créé"))
})

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

Fonction : Enregistre un gestionnaire pour la méthode HTTP PUT (généralement utilisée pour une mise à jour complète

Recommendations