Gin 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 Gin et pourquoi en a-t-on besoin ?

\n\n

Gin est un framework web haute performance pour le langage de programmation Go, écrit en Go pur sans dépendances externes. Il offre aux développeurs une boîte à outils minimaliste mais puissante pour créer des API REST, des applications web et des microservices. Les principales raisons de choisir Gin :

\n\n
    \n
  • Vitesse : Gin utilise son propre routeur basé sur un arbre (Radix tree), ce qui en fait l'un des frameworks les plus rapides pour Go. Il est 2 à 5 fois plus rapide que le net/http standard.
  • \n
  • Simplicité : L'API est intuitive, avec un code minimal pour démarrer un serveur.
  • \n
  • Middleware : Prise en charge intégrée des chaînes de middleware pour la journalisation, l'authentification, CORS, etc.
  • \n
  • Validation : Système de validation des requêtes (binding) puissant avec prise en charge des structures.
  • \n
  • Performances : Faible consommation de mémoire et haute capacité de traitement.
  • \n
  • Communauté : Une immense communauté, de nombreux middleware et plugins prêts à l'emploi.
  • \n
\n\n

Gin est idéal pour : créer des API RESTful, des microservices, le backend d'applications SPA, des serveurs proxy et toute application HTTP où la vitesse est importante.

\n\n

Installation

\n\n

L'installation de Gin se fait via le gestionnaire de paquets standard de Go. Assurez-vous d'avoir Go version 1.13 ou supérieure installé.

\n\n
# Initialisation du module (si ce n'est pas déjà fait)\ngo mod init myapp\n\n# Installation de Gin\ngo get -u github.com/gin-gonic/gin
\n\n

Après avoir exécuté la commande, Gin sera ajouté à go.mod et go.sum. Vous pouvez maintenant l'importer dans votre code :

\n\n
import "github.com/gin-gonic/gin"
\n\n

Démarrage rapide : premier serveur avec Gin

\n\n

Créez un fichier main.go et écrivez un serveur HTTP très simple :

\n\n
package main\n\nimport (\n    "net/http"\n    "github.com/gin-gonic/gin"\n)\n\nfunc main() {\n    // Création d'un routeur avec middleware par défaut (logger + recovery)\n    r := gin.Default()\n\n    // Définition de la route GET /\n    r.GET("/", func(c *gin.Context) {\n        c.JSON(http.StatusOK, gin.H{\n            "message": "Hello, Gin!",\n        })\n    })\n\n    // Démarrage du serveur sur le port 8080\n    r.Run(":8080")\n}
\n\n

Lancez l'application :

\n\n
go run main.go
\n\n

Ouvrez maintenant votre navigateur et allez sur http://localhost:8080/. Vous verrez la réponse JSON : {"message":"Hello, Gin!"}.

\n\n

Méthodes et fonctions principales de Gin

\n\n

Voici 10 méthodes et fonctions clés de Gin avec une description détaillée et des exemples.

\n\n

1. gin.Default()

\n

Ce qu'elle fait : Crée une nouvelle instance du routeur Gin avec deux middleware intégrés : Logger (journalisation des requêtes) et Recovery (récupération après une panique).

\n

Paramètres : Aucun.

\n

Exemple :

\n
r := gin.Default()
\n\n

2. r.GET() / r.POST() / r.PUT() / r.DELETE()

\n

Ce qu'elles font : Définissent un gestionnaire pour la méthode HTTP et le chemin correspondants.

\n

Paramètres :

\n
    \n
  • relativePath (string) — le chemin de la route (par exemple, "/users/:id")
  • \n
  • handlers (...HandlerFunc) — une ou plusieurs fonctions de gestionnaire
  • \n
\n

Exemple :

\n
r.GET("/users", func(c *gin.Context) {\n    c.JSON(200, gin.H{"users": []string{"Alice", "Bob"}})\n})\n\nr.POST("/users", func(c *gin.Context) {\n    // Création d'un utilisateur\n    c.JSON(201, gin.H{"status": "created"})\n})
\n\n

3. c.JSON()

\n

Ce qu'elle fait : Envoie une réponse JSON au client avec le statut HTTP spécifié.

\n

Paramètres :

\n
    \n
  • code (int) — le code de statut HTTP (par exempl

Recommendations