


Explication détaillée du middleware du framework Gin et de son application
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 } }
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)
它接受一个*Context
类型的参数,表示请求的上下文。*Context
类型包含了请求中的各种信息,例如请求头、请求体、请求参数等。
在中间件函数中,我们可以对上下文进行操作,并调用c.Next()
方法将控制权交给下一个中间件或路由处理函数。
例如,如果我们要在中间件中添加一个请求头,可以按照以下方式:
func AddHeader() gin.HandlerFunc { return func(c *gin.Context) { c.Header("X-Request-Id", "123456") c.Next() } }
这个中间件会在请求中添加一个X-Request-Id
头部,然后将控制权交给下一个处理函数。在路由处理函数中,我们可以通过c.GetHeader
方法获取这个请求头的值。
三、Gin框架中的中间件使用
在Gin框架中,使用中间件非常简单。只需要将中间件函数传递给Use
、GET
、POST
、PUT
、DELETE
等方法即可。例如:
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, }) }
上述代码中,我们使用了一个全局中间件MyGlobalMiddleware()
,这个中间件会作用于所有路由之前。我们还使用了一个局部中间件AddHeader()
,这个中间件只作用于/v1/hello
这个路由之前。在Hello
函数中,我们获取了X-Request-Id
r := gin.New() r.Use(gin.Logger())
*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())
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
. - 3. Utilisation du middleware dans le framework Gin
Use
, GET
, POST
, PUT
, DELETE
code> et d’autres méthodes peuvent être utilisées. Par exemple : r := gin.Default() r.Use(cors.Default())
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- 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
- 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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds





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

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 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 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 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 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

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 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)
