Heim Backend-Entwicklung Golang Detaillierte Erläuterung der Middleware des Gin-Frameworks und ihrer Anwendung

Detaillierte Erläuterung der Middleware des Gin-Frameworks und ihrer Anwendung

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

Das Gin-Framework ist ein leichtes Web-Framework, das auf der Go-Sprache basiert. Es bietet die Vorteile hoher Effizienz, Flexibilität und einfacher Skalierbarkeit und wird von vielen Entwicklern geliebt. Der Middleware-Mechanismus ist ein Highlight des Gin-Frameworks. In diesem Artikel werden wir den Middleware-Mechanismus des Gin-Frameworks und seine Anwendung im Detail untersuchen.

1. Was ist Middleware? Ein Plug-in, das die Verarbeitungslogik von Anfragen und Antworten während der Verarbeitung von Netzwerkanfragen abfängt. In der Go-Sprache wird Middleware normalerweise mithilfe von Funktionstypen implementiert. Die Middleware des Gin-Frameworks wird implementiert, indem diese Funktionen als formale Parameter an die Funktionen übergeben werden, die Anfragen und Antworten verarbeiten.

Im Gin-Framework wird Middleware in zwei Typen unterteilt: globale Middleware und lokale Middleware. Globale Middleware agiert auf allen Routen, während lokale Middleware auf einer bestimmten Route oder Routinggruppe agiert.

2. Der Middleware-Mechanismus des Gin-Frameworks

Der Middleware-Mechanismus des Gin-Frameworks ist sehr einfach. Sie müssen die Middleware nur als Funktionstyp an die Funktion übergeben, die die Anfrage und Antwort verarbeitet.

Der folgende Code ist beispielsweise eine einfache Middleware:

func MyMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
    // do something
    c.Next()
    // do something after
  }
}
Nach dem Login kopieren

Unter diesen definiert die Funktion MyMiddleware eine Middleware-Funktion, die einen Funktionstyp zurückgibt. Der zurückgegebene Funktionstyp ist die Funktion, die Anforderungen und Antworten verarbeitet und normalerweise HandlerFunc genannt wird.

HandlerFunc ist wie folgt definiert: MyMiddleware函数定义了一个中间件函数,它返回一个函数类型。而返回的这个函数类型,就是处理请求和响应的函数,通常被称为HandlerFunc

HandlerFunc的定义如下:

type HandlerFunc func(*Context)
Nach dem Login kopieren

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

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

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

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

这个中间件会在请求中添加一个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,
    })
}
Nach dem Login kopieren

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

r := gin.New()
r.Use(gin.Logger())
Nach dem Login kopieren

Es akzeptiert einen Parameter vom Typ *Context, der den Kontext der Anfrage darstellt. Der Typ *Context enthält verschiedene Informationen in der Anfrage, wie z. B. Anfrageheader, Anfragetexte, Anfrageparameter usw.

In der Middleware-Funktion können wir den Kontext bearbeiten und die Methode c.Next() aufrufen, um die Steuerung an die nächste Middleware- oder Routenverarbeitungsfunktion zu übertragen.

Wenn wir beispielsweise einen Anforderungsheader in der Middleware hinzufügen möchten, können wir dies wie folgt tun:

r := gin.Default()
r.Use(gin.Recovery())
Nach dem Login kopieren

Diese Middleware fügt der Anforderung einen X-Request-Id-Header hinzu und Anschließend wird die Steuerung an die nächste Handlerfunktion übergeben. In der Routing-Verarbeitungsfunktion können wir den Wert dieses Anforderungsheaders über die Methode c.GetHeader abrufen.
  1. 3. Verwendung von Middleware im Gin-Framework
Im Gin-Framework ist die Verwendung von Middleware sehr einfach. Übergeben Sie einfach die Middleware-Funktionen an Use, GET, POST, PUT, DELETE code> und andere Methoden können verwendet werden. Zum Beispiel:

r := gin.Default()
r.Use(cors.Default())
Nach dem Login kopieren
Im obigen Code verwenden wir eine globale Middleware MyGlobalMiddleware(), die auf allen Routen agiert. Wir verwenden auch eine lokale Middleware AddHeader(), die nur vor der Route /v1/hello agiert. In der Funktion Hello erhalten wir den Wert des Anforderungsheaders X-Request-Id und geben ihn an den Aufrufer zurück.

Durch die Demonstration dieses Codes können wir die einfache und bequeme Methode zur Verwendung von Middleware im Gin-Framework sehen. 4. Gemeinsame Middleware Ausgabe von Zugriffsprotokollen Wenn die Anfrage zur Hälfte verarbeitet wurde, gibt diese Middleware ein Protokoll aus, das die Informationen der Anfrage aufzeichnet, wie z. B. die angeforderte URL, die Anfragemethode, den Anfrageheader usw.

Im Gin-Framework kann die Logger-Middleware mit dem folgenden Code eingeführt werden:
    rrreee
  1. Durch die Einführung der Logger-Middleware können wir die detaillierten Informationen jeder Anfrage im Zugriffsprotokoll sehen.

Recovery-Middleware

Recovery-Middleware ist eine Fehlerbehandlungs-Middleware. Wenn im Programm eine Ausnahme auftritt, stellt diese Middleware den normalen Betrieb des Programms wieder her und gibt eine Fehlermeldung aus.

Im Gin-Framework kann die Recovery-Middleware mit dem folgenden Code eingeführt werden:
    rrreee
  1. Wenn nach der Einführung dieser Middleware eine Ausnahme im Programm auftritt, stürzt es nicht direkt ab, sondern nimmt den normalen Betrieb wieder auf und gibt eine Fehlermeldung aus , was praktisch ist. Wir lokalisieren Problempunkte schnell.

Cors-Middleware

Cors-Middleware wird zur Bearbeitung domänenübergreifender Anfragen verwendet. Wenn wir eine Anfrage an eine API unter einem anderen Domänennamen senden müssen, muss diese von CORS überprüft werden, andernfalls wird die Anfrage abgelehnt.

Im Gin-Framework kann die Cors-Middleware mit dem folgenden Code eingeführt werden:

rrreee

Nach der Einführung dieser Middleware können wir Anfragen an APIs unter verschiedenen Domänennamen senden, ohne uns Gedanken über einen CORS-Überprüfungsfehler machen zu müssen.

5. Zusammenfassung

In diesem Artikel werden hauptsächlich der Middleware-Mechanismus des Gin-Frameworks und seine Anwendung vorgestellt. In der tatsächlichen Entwicklung spielt Middleware eine sehr wichtige Rolle. Durch ein tiefgreifendes Verständnis des Middleware-Mechanismus können wir seine Funktionen besser nutzen und unsere Entwicklungseffizienz und Programmwartbarkeit verbessern.

Durch die Einführung allgemeiner Middleware können wir dem Programm auch mehr Funktionen wie Protokollausgabe, Fehlerbehandlung, domänenübergreifende Anforderungen usw. verleihen, um es besser an tatsächliche Anwendungsszenarien anzupassen. 🎜🎜Daher ist die Beherrschung der Verwendung von Middleware im Entwicklungsprozess des Gin-Frameworks eine sehr wichtige Fähigkeit. 🎜

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Middleware des Gin-Frameworks und ihrer Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie benutzerdefinierte Middleware in CodeIgniter So implementieren Sie benutzerdefinierte Middleware in CodeIgniter Jul 29, 2023 am 10:53 AM

So implementieren Sie benutzerdefinierte Middleware in CodeIgniter Einführung: In der modernen Webentwicklung spielt Middleware eine wichtige Rolle in Anwendungen. Sie können verwendet werden, um eine gemeinsame Verarbeitungslogik auszuführen, bevor oder nachdem die Anforderung den Controller erreicht. CodeIgniter unterstützt als beliebtes PHP-Framework auch den Einsatz von Middleware. In diesem Artikel wird die Implementierung benutzerdefinierter Middleware in CodeIgniter vorgestellt und ein einfaches Codebeispiel bereitgestellt. Middleware-Übersicht: Middleware ist eine Art Anfrage

Was ist das Prinzip der Tomcat-Middleware? Was ist das Prinzip der Tomcat-Middleware? Dec 27, 2023 pm 04:40 PM

Das Prinzip der Tomcat-Middleware wird basierend auf Java Servlet- und Java EE-Spezifikationen implementiert. Als Servlet-Container ist Tomcat für die Verarbeitung von HTTP-Anfragen und -Antworten und die Bereitstellung der Laufumgebung für Webanwendungen verantwortlich. Die Prinzipien der Tomcat-Middleware umfassen hauptsächlich: 1. Container-Modell; 3. Servlet-Verarbeitungsmechanismus; Technologie; 9. Eingebetteter Modus usw.

Implementierung der Benutzerauthentifizierung mithilfe von Middleware im Slim-Framework Implementierung der Benutzerauthentifizierung mithilfe von Middleware im Slim-Framework Jul 29, 2023 am 10:22 AM

Implementierung der Benutzerauthentifizierung mithilfe von Middleware im Slim-Framework Mit der Entwicklung von Webanwendungen ist die Benutzerauthentifizierung zu einem entscheidenden Merkmal geworden. Um die persönlichen Informationen und sensiblen Daten der Benutzer zu schützen, benötigen wir eine zuverlässige Methode zur Überprüfung der Identität des Benutzers. In diesem Artikel stellen wir vor, wie Sie die Benutzerauthentifizierung mithilfe der Middleware des Slim-Frameworks implementieren. Das Slim-Framework ist ein leichtes PHP-Framework, das eine einfache und schnelle Möglichkeit zum Erstellen von Webanwendungen bietet. Eine der leistungsstarken Funktionen ist die Mitte

So handhaben Sie die Formularvalidierung mithilfe von Middleware in Laravel So handhaben Sie die Formularvalidierung mithilfe von Middleware in Laravel Nov 02, 2023 pm 03:57 PM

Für die Verwendung von Middleware zur Formularvalidierung in Laravel sind spezifische Codebeispiele erforderlich. Einführung: In Laravel ist die Formularvalidierung eine sehr häufige Aufgabe. Um die Gültigkeit und Sicherheit der von den Nutzern eingegebenen Daten zu gewährleisten, überprüfen wir in der Regel die im Formular übermittelten Daten. Laravel bietet eine praktische Formularvalidierungsfunktion und unterstützt auch die Verwendung von Middleware zur Formularvalidierung. In diesem Artikel wird detailliert beschrieben, wie Middleware für die Formularvalidierung in Laravel verwendet wird, und es werden spezifische Codebeispiele bereitgestellt.

So verwenden Sie Middleware zur Datenbeschleunigung in Laravel So verwenden Sie Middleware zur Datenbeschleunigung in Laravel Nov 02, 2023 am 09:40 AM

Verwendung von Middleware zur Datenbeschleunigung in Laravel Einführung: Bei der Entwicklung von Webanwendungen mit dem Laravel-Framework ist die Datenbeschleunigung der Schlüssel zur Verbesserung der Anwendungsleistung. Middleware ist eine wichtige Funktion von Laravel, die Anfragen verarbeitet, bevor sie den Controller erreichen oder bevor die Antwort zurückgegeben wird. Dieser Artikel konzentriert sich auf die Verwendung von Middleware zur Datenbeschleunigung in Laravel und stellt spezifische Codebeispiele bereit. 1. Was ist Middleware? Middleware ist ein Mechanismus, der im Laravel-Framework verwendet wird

So verwenden Sie Middleware für die Antworttransformation in Laravel So verwenden Sie Middleware für die Antworttransformation in Laravel Nov 03, 2023 am 09:57 AM

So verwenden Sie Middleware für die Antwortkonvertierung in Laravel Middleware ist eine der sehr leistungsstarken und praktischen Funktionen im Laravel-Framework. Es ermöglicht uns, Anfragen und Antworten zu verarbeiten, bevor die Anfrage in den Controller gelangt oder bevor die Antwort an den Kunden gesendet wird. In diesem Artikel werde ich zeigen, wie man Middleware für die Antworttransformation in Laravel verwendet. Stellen Sie vor dem Start sicher, dass Sie Laravel installiert und ein neues Projekt erstellt haben. Jetzt folgen wir diesen Schritten: Erstellen Sie eine neue Middleware. Öffnen Sie

So verwenden Sie Middleware zur Datenwiederherstellung in Laravel So verwenden Sie Middleware zur Datenwiederherstellung in Laravel Nov 02, 2023 pm 02:12 PM

Laravel ist ein beliebtes PHP-Webanwendungs-Framework, das viele schnelle und einfache Möglichkeiten zum Erstellen effizienter, sicherer und skalierbarer Webanwendungen bietet. Bei der Entwicklung von Laravel-Anwendungen müssen wir häufig die Frage der Datenwiederherstellung berücksichtigen, d. h. wie wir Daten wiederherstellen und den normalen Betrieb der Anwendung im Falle eines Datenverlusts oder einer Beschädigung sicherstellen können. In diesem Artikel stellen wir die Verwendung der Laravel-Middleware zur Implementierung von Datenwiederherstellungsfunktionen vor und stellen spezifische Codebeispiele bereit. 1. Was ist Lara?

So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel Nov 02, 2023 pm 02:26 PM

So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel. Einführung: Laravel ist ein beliebtes PHP-Open-Source-Framework, das praktische und leistungsstarke Tools zum Entwickeln von Webanwendungen bereitstellt. Eine der wichtigen Funktionen sind geplante Aufgaben, die es Entwicklern ermöglichen, bestimmte Aufgaben in bestimmten Intervallen auszuführen. In diesem Artikel stellen wir vor, wie Sie Middleware verwenden, um die geplante Aufgabenplanung von Laravel zu implementieren, und stellen spezifische Codebeispiele bereit. Vorbereitung der Umgebung Bevor wir beginnen, müssen wir uns vergewissern

See all articles