Go – [gin] Grundlegende Verwendung der Rahmenkonstruktion

I. Einleitung

Gin ist ein schnelles Golang-Webframework, das für Routing und Geschwindigkeit httprouter anstelle des integrierten Go-Routings verwendet. Das Folgende ist der Aufbau und die Verwendung des Gin-Frameworks:

2. Installieren Sie das Gin-Framework

1. Installieren Sie das Gin-Framework mit dem folgenden Befehl auf Ihrem Computer:

go get -u github.com/gin-gonic/gin

Dadurch wird die neueste Version des Gin-Frameworks aus dem Gin-GitHub-Repository installiert.

2. Gin-Anwendung erstellen

Bevor wir eine Gin-Anwendung erstellen, wollen wir die Grundstruktur von Gin verstehen:

  • Router : Er ist der Kernbestandteil der Gin-Anwendung. Er empfängt HTTP-Anfragen und leitet sie basierend auf dem Pfad und der HTTP-Methode der Anfrage an den richtigen Handler weiter.
  • Handler : Es handelt sich um den Geschäftslogikcode in der Gin-Anwendung, der HTTP-Anfragen empfängt und HTTP-Antworten zurückgibt.
  • Middleware : Dies ist der Code, der zwischen HTTP-Anfrage und Handler stattfindet. Es kann verwendet werden, um einige allgemeine Vorgänge wie Authentifizierung, Protokollierung, Verarbeitung von Anforderungen usw. durchzuführen.

Als Nächstes erstellen wir eine einfache Gin-Anwendung mit den folgenden Routen:

GET /:返回“Hello World!”
GET /ping:返回“pong!”
POST /submit:返回HTTP请求的JSON数据

Hier ist das Codebeispiel:

package main

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

func main() {
    
    
	// 创建一个Gin路由器
	r := gin.Default()

	// 定义路由
	r.GET("/", func(c *gin.Context) {
    
    
		c.JSON(200, gin.H{
    
    
			"message": "Hello World!",
		})
	})

	r.GET("/ping", func(c *gin.Context) {
    
    
		c.JSON(200, gin.H{
    
    
			"message": "pong!",
		})
	})

	r.POST("/submit", func(c *gin.Context) {
    
    
		var json struct {
    
    
			Name string `json:"name"`
			Email string `json:"email"`
		}

		if err := c.Bind(&json); err == nil {
    
    
			c.JSON(200, gin.H{
    
    
				"message": "JSON received",
				"name":    json.Name,
				"email":   json.Email,
			})
		} else {
    
    
			c.JSON(400, gin.H{
    
    "error": err.Error()})
		}
	})

	// 启动Gin应用程序
	r.Run()
}

3. Führen Sie die Gin-Anwendung aus

Führen Sie die obige Gin-Anwendung mit dem folgenden Befehl aus:

go run main.go

4. Testen Sie die Anwendung

Dadurch wird die Gin-Anwendung auf dem Standardport 8000 auf localhost gestartet. Sie können beim Ausführen auch den Port angeben

r := gin.Default()
r.Run(":8000")

Sie können jetzt über Ihren Browser auf die folgenden Routen zugreifen:

http://localhost:8080/
http://localhost:8080/ping

POST-Anfrage, http://localhost:8080/submitJSON-Daten senden

Bisher haben Sie das Gin-Framework erfolgreich erstellt und verwendet. Sie können der Anwendung weitere Routing- und Handlerfunktionen hinzufügen, um mehr Funktionen zu erreichen.

3. Struktur des Projektverzeichnisses

1. Das Folgende ist ein Beispiel für ein einfaches Gin-Projektverzeichnis:

├── app
│   ├── config
│   │   └── config.go
│   ├── controllers
│   │   ├── auth.go
│   │   └── user.go
│   ├── middleware
│   │   ├── auth.go
│   │   └── logger.go
│   ├── models
│   │   ├── user.go
│   │   └── db.go
│   └── routes
│       └── routes.go
├── main.go
└── go.mod

In:

  • app – Der gesamte Inhalt der Anwendung wird in diesem Ordner abgelegt.
  • config – speichert die gesamte Konfiguration der Anwendung.
  • Controller – Enthält alle Controller-Dateien, jede Datei verwaltet eine entsprechende Route.
  • Middleware – speichert Middleware (z. B. Authentifizierung, Protokollierung).
  • models – speichert Datenbankmodelle und Datenbankverbindungskonfigurationen.
  • Routen – speichert alle definierten Routen.
  • main.go – der Einstiegspunkt der Anwendung.
  • go.mod – Dokumentiert die von der Anwendung benötigten Abhängigkeiten.

2. Die typische Verzeichnisstruktur des Gin-Projekts ist wie folgt:

├── configs
│   ├── config.yaml
│   └── db.yaml
├── controllers
│   ├── auth_controller.go
│   └── user_controller.go
├── middleware
│   ├── auth_middleware.go
│   └── logger_middleware.go
├── models
│   ├── db.go
│   ├── user.go
│   └── ...
├── routes
│   └── routes.go
├── services
│   ├── auth_service.go
│   └── user_service.go
├── utils
│   ├── response.go
│   └── ...
├── main.go
└── README.md

In:

  • Das Verzeichnis configs enthält die Konfigurationsdateien des Projekts
  • Das Controller- Verzeichnis enthält Controller-Dateien
  • Das Middleware- Verzeichnis enthält Middleware-Dateien
  • Das Modellverzeichnis enthält Modelldateien (ORM).
  • Das Routenverzeichnis enthält Routingdateien
  • Das Diensteverzeichnis enthält Dienstdateien
  • Das Utils- Verzeichnis enthält mehrere Tooldateien
  • main.go ist die Eintragsdatei des Projekts README.mdund die Einführungsdatei des Projekts.

Die spezifische Projektstruktur kann je nach Projektgröße, funktionalen Anforderungen und anderen Faktoren variieren.

Das Obige ist die grundlegende Einführung in die Verwendung der [gin]-Framework-Konstruktion. Ich hoffe, es wird Ihnen hilfreich sein!

Guess you like

Origin blog.csdn.net/qq_43030934/article/details/131507503