Golang belajar penggunaan web framework gin

王林
Lepaskan: 2023-06-24 10:20:31
asal
2558 orang telah melayarinya

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
Salin selepas log masuk

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"
Salin selepas log masuk
  1. Buat enjin gin

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

r := gin.New()
Salin selepas log masuk
  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")
})
Salin selepas log masuk
  1. Mulakan perkhidmatan

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

r.Run(":8080")
Salin selepas log masuk

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")
}
Salin selepas log masuk

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")
})
Salin selepas log masuk
  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)
})
Salin selepas log masuk
  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")
})
Salin selepas log masuk
  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")
    })
}
Salin selepas log masuk

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())
Salin selepas log masuk
  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")
})
Salin selepas log masuk

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)
})
Salin selepas log masuk
  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,
    })
})
Salin selepas log masuk
  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(),
        })
    }
})
Salin selepas log masuk

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
Salin selepas log masuk
  1. Muat templat

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

r.LoadHTMLGlob("html/*")
Salin selepas log masuk
  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",
    })
})
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan