Rumah >pembangunan bahagian belakang >Golang >Golang belajar penggunaan web framework gin

Golang belajar penggunaan web framework gin

王林
王林asal
2023-06-24 10:20:312601semak imbas

Penggunaan gin rangka kerja Web untuk pembelajaran Golang

Dengan pembangunan Internet, aplikasi Web telah menjadi ciri standard pelbagai sistem perisian. Bahasa pembangunan bahagian pelayan untuk aplikasi web menjadi semakin pelbagai. Antaranya, gaya sintaks berprestasi tinggi dan ringkas Golang semakin digemari oleh pembangun. Artikel ini akan memperkenalkan salah satu rangka kerja web yang biasa digunakan di Golang: gin.

1. Apakah gin

gin ialah rangka kerja aplikasi web yang ditulis dalam bahasa Go. Ia berdasarkan pakej httprouter dan perpustakaan standard net/http, memberikan prestasi tinggi, kecekapan, kemudahan penggunaan dan fungsi yang berkuasa. Gunakan gin untuk membina pelayan web dan fungsi sokongan dengan cepat seperti RESTful API, kumpulan penghalaan, perisian tengah, pengikatan parameter dan pemaparan templat.

2. Pemasangan gin

Sebelum menggunakan kerangka gin, anda perlu memasang gin terlebih dahulu. Anda boleh menggunakan baris arahan berikut untuk memasang:

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

3. Penggunaan asas gin

Di bawah, kami menggunakan contoh untuk menunjukkan cara menggunakan gin untuk menulis perkhidmatan Web yang ringkas.

  1. Import pakej gin

Import pakej gin di kepala fail kod:

import "github.com/gin-gonic/gin"
  1. Buat enjin gin

Buat enjin gin baharu menggunakan kaedah gin.New().

r := gin.New()
  1. Tentukan laluan

Gunakan kaedah r.GET(), r.POST(), r.PUT() dan r.DELETE() untuk menentukan laluan, Antaranya, parameter pertama ialah laluan penghalaan, dan parameter kedua ialah fungsi pemprosesan penghalaan.

r.GET("/", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})
  1. Mulakan perkhidmatan

Gunakan kaedah r.Run() untuk memulakan perkhidmatan dan nyatakan alamat perkhidmatan dan nombor port.

r.Run(":8080")

Kod lengkap adalah seperti berikut:

package main

import (
    "net/http"

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

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

    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })

    r.Run(":8080")
}

4 penghalaan Gin

  1. Penghalaan asas

Dalam gin, penghalaan. adalah oleh Ia terdiri daripada kaedah penghalaan, laluan permintaan dan fungsi pemprosesan Kaedah penghalaan termasuk GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, dll. Gunakan kaedah seperti r.GET(), r.POST(), r.PUT(), dan r.DELETE() untuk menentukan laluan.

r.GET("/index", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})
  1. Laluan dengan parameter

Gunakan titik bertindih (:) untuk menentukan laluan dengan parameter.

r.GET("/hello/:name", func(c *gin.Context) {
    name := c.Param("name")
    c.String(http.StatusOK, "Hello %s", name)
})
  1. Laluan untuk berbilang jenis permintaan

Gunakan kaedah r.Handle() untuk menentukan laluan untuk berbilang jenis permintaan.

r.Handle("GET", "/hello", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})

r.Handle("POST", "/hello", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello POST")
})
  1. Penghimpunan penghalaan

Gunakan kaedah r.Group() untuk melaksanakan pengelompokan penghalaan dan fungsi pemprosesan penghalaan dikongsi boleh ditambahkan pada kumpulan penghalaan.

v1 := r.Group("/v1")
{
    v1.GET("/hello", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello v1")
    })
}

5. Gin middleware

  1. Menggunakan middleware

Menggunakan gin middleware boleh mencapai banyak fungsi yang berguna, seperti pengesahan dan pengelogan , caching, analisis prestasi , dsb. Gunakan kaedah r.Use() untuk mendaftar middleware.

r.Use(gin.Logger())
r.Use(gin.Recovery())
  1. Menulis middleware

Menulis kaedah middleware adalah sangat mudah, anda hanya perlu mencipta fungsi dengan parameter jenis gin.Context dan memanggilnya dalam fungsi c Kaedah .Next() boleh merealisasikan fungsi middleware.

func Auth() gin.HandlerFunc {
    return func(c *gin.Context) {
        if c.GetHeader("Authorization") != "token" {
            c.AbortWithStatus(http.StatusUnauthorized)
        }
        c.Next()
    }
}

r.GET("/hello", Auth(), func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})

6. Pengikatan parameter Gin

  1. Parameter Pertanyaan Ikat

Gunakan kaedah c.Query() untuk mendapatkan parameter pertanyaan.

r.GET("/hello", func(c *gin.Context) {
    name := c.Query("name")
    age := c.Query("age")
    c.String(http.StatusOK, "name: %s, age: %s", name, age)
})
  1. Ikat borang POST

Gunakan kaedah c.PostForm() untuk mendapatkan data borang POST.

r.POST("/login", func(c *gin.Context) {
    username := c.PostForm("username")
    password := c.PostForm("password")
    c.JSON(http.StatusOK, gin.H{
        "username": username,
        "password": password,
    })
})
  1. Ikat data JSON

Gunakan kaedah c.BindJSON() untuk mengikat data JSON.

type User struct {
    Name     string `json:"name"`
    Password string `json:"password"`
}

r.POST("/login", func(c *gin.Context) {
    var user User
    if err := c.BindJSON(&user); err == nil {
        c.JSON(http.StatusOK, gin.H{
            "name":     user.Name,
            "password": user.Password,
        })
    } else {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err.Error(),
        })
    }
})

7. Paparan templat Gin

Menggunakan rangka kerja gin boleh memaparkan templat dan menyokong berbilang enjin templat, seperti html, json, xml, dsb.

  1. Pasang enjin templat

Gunakan arahan go get untuk memasang enjin templat.

go get -u github.com/gin-gonic/gin
go get -u github.com/gin-gonic/contrib/jwt
go get -u github.com/jinzhu/gorm
  1. Muat templat

Gunakan kaedah gin.LoadHTMLGlob() untuk memuatkan fail templat.

r.LoadHTMLGlob("html/*")
  1. Render templat

Gunakan kaedah c.HTML() untuk memaparkan templat.

r.GET("/html", func(c *gin.Context) {
    c.HTML(http.StatusOK, "index.html", gin.H{
        "title": "Welcome Gin Web Framework",
    })
})

8. Kesimpulan

Artikel ini memperkenalkan langkah dan teknik asas untuk membina pelayan Web menggunakan rangka kerja gin. Prestasi tinggi dan gaya sintaks ringkas Golang menjadikannya semakin popular di kalangan pembangun dalam pembangunan perkhidmatan web. Saya harap artikel ini dapat membawa sedikit inspirasi dan bantuan kepada pembangun pelayan web Golang.

Atas ialah kandungan terperinci Golang belajar penggunaan web framework gin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn