Maison développement back-end Golang Explication détaillée du middleware du framework Gin et de son application

Explication détaillée du middleware du framework Gin et de son application

Jun 22, 2023 am 10:21 AM
中间件 gin框架 运用

Le framework Gin est un framework Web léger basé sur le langage Go. Il présente les avantages d'une efficacité élevée, d'une flexibilité et d'une évolutivité facile, et est apprécié par de nombreux développeurs. Le mécanisme middleware est un point fort du framework Gin. Dans cet article, nous explorerons en détail le mécanisme middleware du framework Gin et son application.

1. Qu'est-ce qu'un middleware ? Le middleware fait référence à un plug-in qui intercepte et réécrit la logique de traitement des requêtes et des réponses pendant le processus de traitement des requêtes réseau. En langage Go, le middleware est généralement implémenté à l’aide de types de fonctions. Le middleware du framework Gin est implémenté en transmettant ces fonctions comme paramètres formels aux fonctions qui gèrent les requêtes et les réponses.

Dans le framework Gin, le middleware est divisé en deux types : le middleware global et le middleware local. Le middleware global agit sur toutes les routes, tandis que le middleware local agit sur une certaine route ou groupe de routage.

2. Le mécanisme middleware du framework Gin

Le mécanisme middleware du framework Gin est très simple. Il vous suffit de transmettre le middleware en tant que type de fonction à la fonction qui gère la requête et la réponse.

Par exemple, le code suivant est un middleware simple :

func MyMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
    // do something
    c.Next()
    // do something after
  }
}
Copier après la connexion

Parmi eux, la fonction MyMiddleware définit une fonction middleware, qui renvoie un type de fonction. Le type de fonction renvoyé est la fonction qui gère les requêtes et les réponses, généralement appelée HandlerFunc.

HandlerFunc est défini comme suit : MyMiddleware函数定义了一个中间件函数,它返回一个函数类型。而返回的这个函数类型,就是处理请求和响应的函数,通常被称为HandlerFunc

HandlerFunc的定义如下:

type HandlerFunc func(*Context)
Copier après la connexion

它接受一个*Context类型的参数,表示请求的上下文。*Context类型包含了请求中的各种信息,例如请求头、请求体、请求参数等。

在中间件函数中,我们可以对上下文进行操作,并调用c.Next()方法将控制权交给下一个中间件或路由处理函数。

例如,如果我们要在中间件中添加一个请求头,可以按照以下方式:

func AddHeader() gin.HandlerFunc {
  return func(c *gin.Context) {
    c.Header("X-Request-Id", "123456")
    c.Next()
  }
}
Copier après la connexion

这个中间件会在请求中添加一个X-Request-Id头部,然后将控制权交给下一个处理函数。在路由处理函数中,我们可以通过c.GetHeader方法获取这个请求头的值。

三、Gin框架中的中间件使用

在Gin框架中,使用中间件非常简单。只需要将中间件函数传递给UseGETPOSTPUTDELETE等方法即可。例如:

import (
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    // 使用全局中间件
    r.Use(MyGlobalMiddleware())

    // 定义路由组,并使用局部中间件
    v1 := r.Group("/v1")
    {
        v1.Use(AddHeader())
        v1.GET("/hello", Hello)
    }

    r.Run(":8080")
}

func MyGlobalMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
    // do something
    c.Next()
    // do something after
  }
}

func AddHeader() gin.HandlerFunc {
  return func(c *gin.Context) {
    c.Header("X-Request-Id", "123456")
    c.Next()
  }
}

func Hello(c *gin.Context) {
    headers := c.Request.Header
    requestId := headers.Get("X-Request-Id")
    c.JSON(200, gin.H{
        "message": "hello",
        "request_id": requestId,
    })
}
Copier après la connexion

上述代码中,我们使用了一个全局中间件MyGlobalMiddleware(),这个中间件会作用于所有路由之前。我们还使用了一个局部中间件AddHeader(),这个中间件只作用于/v1/hello这个路由之前。在Hello函数中,我们获取了X-Request-Id

r := gin.New()
r.Use(gin.Logger())
Copier après la connexion

Il accepte un paramètre de type *Context, représentant le contexte de la requête. Le type *Context contient diverses informations dans la requête, telles que les en-têtes de requête, les corps de requête, les paramètres de requête, etc.

Dans la fonction middleware, nous pouvons opérer sur le contexte et appeler la méthode c.Next() pour transférer le contrôle au prochain middleware ou fonction de traitement de route.

Par exemple, si nous voulons ajouter un en-tête de requête dans le middleware, nous pouvons le faire comme suit :

r := gin.Default()
r.Use(gin.Recovery())
Copier après la connexion

Ce middleware ajoutera un en-tête X-Request-Id à la requête, et puis le contrôle est transmis à la fonction de gestionnaire suivante. Dans la fonction de traitement de routage, nous pouvons obtenir la valeur de cet en-tête de requête grâce à la méthode c.GetHeader.
  1. 3. Utilisation du middleware dans le framework Gin
Dans le framework Gin, l'utilisation du middleware est très simple. Transmettez simplement les fonctions middleware à Use, GET, POST, PUT, DELETE code> et d’autres méthodes peuvent être utilisées. Par exemple :

r := gin.Default()
r.Use(cors.Default())
Copier après la connexion
Dans le code ci-dessus, nous utilisons un middleware global MyGlobalMiddleware(), qui agira sur toutes les routes. Nous utilisons également un middleware local AddHeader(), qui n'agit qu'avant la route /v1/hello. Dans la fonction Hello, nous obtenons la valeur de l'en-tête de requête X-Request-Id et la renvoyons à l'appelant.

Grâce à la démonstration de ce code, nous pouvons voir la méthode simple et pratique d'utilisation du middleware dans le framework Gin.

4. Middleware commun
  1. En plus du middleware personnalisé ci-dessus, le framework Gin fournit également de nombreux middleware courants. Présentons brièvement certains des middlewares les plus importants :

Middleware Logger

Le middleware Logger est le middleware responsable de. sortie des journaux d'accès Lorsque la demande est à moitié traitée, ce middleware génère un journal enregistrant les informations de la demande, telles que l'URL demandée, la méthode de demande, l'en-tête de la demande, etc.

Dans le framework Gin, le middleware Logger peut être introduit en utilisant le code suivant :
    rrreee
  1. En introduisant le middleware Logger, nous pouvons voir les informations détaillées de chaque requête dans le journal d'accès.

Middleware de récupération

Le middleware de récupération est un middleware de gestion des erreurs Lorsqu'une exception se produit dans le programme, ce middleware restaurera le fonctionnement normal du programme et affichera un message d'erreur.

Dans le framework Gin, le middleware de récupération peut être introduit à l'aide du code suivant :

rrreee

Après avoir introduit ce middleware, si une exception se produit dans le programme, il ne plantera pas directement, mais reprendra son fonctionnement normal et affichera un message d'erreur. , ce qui est pratique. Nous localisons rapidement les points problématiques.

Middleware Cors

Le middleware Cors est utilisé pour gérer les requêtes inter-domaines. Lorsque nous devons envoyer une requête à une API sous un nom de domaine différent, elle doit être vérifiée par CORS, sinon la requête sera rejetée. 🎜🎜Dans le framework Gin, le middleware Cors peut être introduit en utilisant le code suivant : 🎜rrreee🎜Après avoir introduit ce middleware, nous pouvons envoyer des requêtes à des API sous différents noms de domaine sans nous soucier de l'échec de la vérification CORS. 🎜🎜5. Résumé🎜🎜Cet article présente principalement le mécanisme middleware du framework Gin et son application dans le développement réel, le middleware joue un rôle très important. Grâce à une compréhension approfondie du mécanisme middleware, nous pouvons mieux utiliser ses fonctions et améliorer l'efficacité de notre développement et la maintenabilité des programmes. 🎜🎜En introduisant un middleware commun, nous pouvons également donner au programme plus de fonctions, telles que la sortie de journaux, la gestion des erreurs, les requêtes inter-domaines, etc., afin de mieux s'adapter aux scénarios d'application réels. 🎜🎜Par conséquent, dans le processus de développement du framework Gin, maîtriser l'utilisation du middleware est une compétence très importante. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter un middleware personnalisé dans CodeIgniter Comment implémenter un middleware personnalisé dans CodeIgniter Jul 29, 2023 am 10:53 AM

Comment implémenter un middleware personnalisé dans CodeIgniter Introduction : Dans le développement Web moderne, le middleware joue un rôle essentiel dans l'application. Ils peuvent être utilisés pour exécuter une logique de traitement partagé avant ou après que la demande atteigne le contrôleur. CodeIgniter, en tant que framework PHP populaire, prend également en charge l'utilisation de middleware. Cet article explique comment implémenter un middleware personnalisé dans CodeIgniter et fournit un exemple de code simple. Présentation du middleware : le middleware est une sorte de requête

Quel est le principe du middleware Tomcat Quel est le principe du middleware Tomcat Dec 27, 2023 pm 04:40 PM

Le principe du middleware Tomcat est implémenté sur la base des spécifications Java Servlet et Java EE. En tant que conteneur de servlets, Tomcat est responsable du traitement des requêtes et des réponses HTTP et de la fourniture de l'environnement d'exécution des applications Web. Les principes du middleware Tomcat concernent principalement : 1. Le modèle de conteneur ; 2. L'architecture des composants ; 3. Le mécanisme de traitement des servlets ; 4. L'écoute des événements et les filtres ; 6. La sécurité. technologie 9. Mode intégré, etc.

Implémentation de l'authentification des utilisateurs à l'aide d'un middleware dans le framework Slim Implémentation de l'authentification des utilisateurs à l'aide d'un middleware dans le framework Slim Jul 29, 2023 am 10:22 AM

Implémentation de l'authentification des utilisateurs à l'aide d'un middleware dans le framework Slim Avec le développement des applications Web, l'authentification des utilisateurs est devenue une fonctionnalité cruciale. Afin de protéger les informations personnelles et les données sensibles des utilisateurs, nous avons besoin d'une méthode fiable pour vérifier l'identité de l'utilisateur. Dans cet article, nous présenterons comment implémenter l’authentification des utilisateurs à l’aide du middleware du framework Slim. Le framework Slim est un framework PHP léger qui fournit un moyen simple et rapide de créer des applications Web. L'une des fonctionnalités puissantes est le milieu

Comment gérer la validation de formulaire à l'aide d'un middleware dans Laravel Comment gérer la validation de formulaire à l'aide d'un middleware dans Laravel Nov 02, 2023 pm 03:57 PM

Comment utiliser un middleware pour gérer la validation de formulaire dans Laravel, des exemples de code spécifiques sont requis Introduction : Dans Laravel, la validation de formulaire est une tâche très courante. Afin de garantir la validité et la sécurité des données saisies par les utilisateurs, nous vérifions généralement les données soumises dans le formulaire. Laravel fournit une fonction pratique de validation de formulaire et prend également en charge l'utilisation de middleware pour gérer la validation de formulaire. Cet article présentera en détail comment utiliser le middleware pour gérer la validation des formulaires dans Laravel et fournira des exemples de code spécifiques.

Comment utiliser un middleware pour l'accélération des données dans Laravel Comment utiliser un middleware pour l'accélération des données dans Laravel Nov 02, 2023 am 09:40 AM

Comment utiliser le middleware pour l'accélération des données dans Laravel Introduction : Lors du développement d'applications Web à l'aide du framework Laravel, l'accélération des données est la clé pour améliorer les performances des applications. Le middleware est une fonctionnalité importante fournie par Laravel qui gère les requêtes avant qu'elles n'atteignent le contrôleur ou avant que la réponse ne soit renvoyée. Cet article se concentrera sur la façon d'utiliser le middleware pour obtenir une accélération des données dans Laravel et fournira des exemples de code spécifiques. 1. Qu'est-ce qu'un middleware ? Le middleware est un mécanisme dans le framework Laravel.

Comment utiliser le middleware pour la transformation des réponses dans Laravel Comment utiliser le middleware pour la transformation des réponses dans Laravel Nov 03, 2023 am 09:57 AM

Comment utiliser le middleware pour la conversion des réponses dans Laravel Middleware est l'une des fonctionnalités très puissantes et pratiques du framework Laravel. Il nous permet de traiter les demandes et les réponses avant que la demande n'entre dans le contrôleur ou avant que la réponse ne soit envoyée au client. Dans cet article, je vais montrer comment utiliser le middleware pour la transformation des réponses dans Laravel. Avant de commencer, assurez-vous que Laravel est installé et qu'un nouveau projet est créé. Nous allons maintenant suivre ces étapes : Créer un nouveau middleware Ouvrir

Comment utiliser un middleware pour la récupération de données dans Laravel Comment utiliser un middleware pour la récupération de données dans Laravel Nov 02, 2023 pm 02:12 PM

Laravel est un framework d'application Web PHP populaire qui offre de nombreux moyens rapides et simples de créer des applications Web efficaces, sécurisées et évolutives. Lors du développement d'applications Laravel, nous devons souvent considérer la question de la récupération des données, c'est-à-dire comment récupérer les données et assurer le fonctionnement normal de l'application en cas de perte ou de dommage de données. Dans cet article, nous présenterons comment utiliser le middleware Laravel pour implémenter des fonctions de récupération de données et fournirons des exemples de code spécifiques. 1. Qu'est-ce que Lara ?

Comment utiliser un middleware pour configurer le partage de ressources entre domaines (CORS) dans le framework Slim Comment utiliser un middleware pour configurer le partage de ressources entre domaines (CORS) dans le framework Slim Jul 30, 2023 pm 08:34 PM

Comment configurer le partage de ressources Cross-Origin (CORS) à l'aide d'un middleware dans le framework Slim Le partage de ressources Cross-Origin (CORS) est un mécanisme qui permet au serveur de définir des informations supplémentaires dans l'en-tête de réponse HTTP pour indiquer au navigateur si Autoriser le partage de ressources Cross-Origin. -demandes de domaine. Dans certains projets avec séparation front-end et back-end, le mécanisme CORS peut être utilisé pour réaliser la requête inter-domaines du front-end pour l'interface back-end. Lors de l'utilisation du framework Slim pour développer l'API REST, nous pouvons utiliser un middleware (Middleware)

See all articles