Rumah pembangunan bahagian belakang Golang Penjelasan terperinci tentang middleware rangka kerja Gin dan aplikasinya

Penjelasan terperinci tentang middleware rangka kerja Gin dan aplikasinya

Jun 22, 2023 am 10:21 AM
perisian tengah ginframework guna

Rangka kerja Gin ialah rangka kerja web yang ringan berdasarkan bahasa Go. Ia mempunyai kelebihan kecekapan tinggi, fleksibiliti dan kebolehskalaan yang mudah, dan disukai oleh banyak pembangun. Mekanisme perisian tengah ialah sorotan rangka kerja Gin. Dalam artikel ini, kami akan meneroka mekanisme perisian tengah bagi rangka kerja Gin dan aplikasinya secara terperinci.

1. Apakah itu middleware

Middleware merujuk kepada pemalam yang memintas dan menulis semula logik pemprosesan permintaan dan respons semasa proses memproses permintaan rangkaian. Dalam bahasa Go, middleware biasanya dilaksanakan menggunakan jenis fungsi. Perisian tengah rangka kerja Gin dilaksanakan dengan menghantar fungsi ini sebagai parameter formal kepada fungsi yang mengendalikan permintaan dan respons.

Dalam rangka kerja Gin, middleware terbahagi kepada dua jenis: middleware global dan middleware tempatan. Perisian tengah global bertindak pada semua laluan, manakala perisian tengah tempatan bertindak pada laluan atau kumpulan penghalaan tertentu.

2. Mekanisme perisian tengah rangka kerja Gin

Mekanisme perisian tengah rangka kerja Gin adalah sangat mudah Anda hanya perlu menghantar perisian tengah sebagai jenis fungsi kepada fungsi yang mengendalikan permintaan dan tindak balas.

Sebagai contoh, kod berikut ialah middleware yang ringkas:

func MyMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
    // do something
    c.Next()
    // do something after
  }
}
Salin selepas log masuk

Antaranya, fungsi MyMiddleware mentakrifkan fungsi middleware yang mengembalikan jenis fungsi. Jenis fungsi yang dikembalikan ialah fungsi yang mengendalikan permintaan dan respons, biasanya dipanggil HandlerFunc.

HandlerFunc ditakrifkan seperti berikut:

type HandlerFunc func(*Context)
Salin selepas log masuk

Ia menerima parameter jenis *Context, mewakili konteks permintaan. Jenis *Context mengandungi pelbagai maklumat dalam permintaan, seperti pengepala permintaan, badan permintaan, parameter permintaan, dsb.

Dalam fungsi middleware, kita boleh beroperasi pada konteks dan memanggil kaedah c.Next() untuk menghantar kawalan kepada middleware atau fungsi pemprosesan laluan seterusnya.

Sebagai contoh, jika kita ingin menambah pengepala permintaan dalam middleware, kita boleh melakukan perkara berikut:

func AddHeader() gin.HandlerFunc {
  return func(c *gin.Context) {
    c.Header("X-Request-Id", "123456")
    c.Next()
  }
}
Salin selepas log masuk

Perisian tengah ini akan menambah pengepala X-Request-Id pada permintaan dan kemudian mengawal The kanan dihantar ke fungsi pemprosesan seterusnya. Dalam fungsi pemprosesan penghalaan, kita boleh mendapatkan nilai pengepala permintaan ini melalui kaedah c.GetHeader.

3. Penggunaan perisian tengah dalam rangka kerja Gin

Dalam rangka kerja Gin, menggunakan perisian tengah adalah sangat mudah. Hanya hantar fungsi middleware kepada Use, GET, POST, PUT, DELETE dan kaedah lain. Contohnya:

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

Dalam kod di atas, kami menggunakan perisian tengah global MyGlobalMiddleware(), yang akan bertindak pada semua laluan. Kami juga menggunakan perisian tengah tempatan AddHeader(), yang hanya bertindak sebelum laluan /v1/hello. Dalam fungsi Hello, kami memperoleh nilai pengepala permintaan X-Request-Id dan mengembalikannya kepada pemanggil.

Melalui demonstrasi kod ini, kita dapat melihat kaedah mudah dan mudah untuk menggunakan perisian tengah dalam rangka kerja Gin.

4. Perisian tengah biasa

Selain perisian tengah tersuai di atas, rangka kerja Gin juga menyediakan banyak perisian tengah biasa Mari perkenalkan secara ringkas beberapa perisian tengah yang lebih penting:

  1. Logger middleware

Logger middleware adalah middleware yang bertanggungjawab untuk mengeluarkan log akses Apabila permintaan diproses separuh jalan, middleware ini akan mengeluarkan permintaan pengelogan, seperti URL yang diminta, kaedah permintaan, permintaan pengepala, dsb.

Dalam rangka kerja Gin, perisian tengah Logger boleh diperkenalkan menggunakan kod berikut:

r := gin.New()
r.Use(gin.Logger())
Salin selepas log masuk

Dengan memperkenalkan perisian tengah Logger, kita boleh melihat maklumat terperinci setiap permintaan dalam log akses.

  1. Perisian tengah pemulihan

Perisian tengah pemulihan ialah perisian tengah pengendalian ralat Apabila pengecualian berlaku dalam atur cara, perisian tengah ini akan memulihkan operasi biasa program dan mengeluarkan ralat mesej.

Dalam rangka kerja Gin, perisian tengah Pemulihan boleh diperkenalkan menggunakan kod berikut:

r := gin.Default()
r.Use(gin.Recovery())
Salin selepas log masuk

Selepas memperkenalkan perisian tengah ini, jika pengecualian berlaku dalam program, ia tidak akan ranap secara langsung, tetapi akan kembali kepada normal Jalankan dan keluarkan mesej ralat untuk membantu kami mencari masalah dengan cepat.

  1. Cors middleware

Cors middleware digunakan untuk mengendalikan permintaan merentas domain Apabila kami perlu menghantar permintaan kepada API di bawah nama domain yang berbeza, ia mestilah disahkan oleh CORS Jika tidak permintaan akan ditolak.

Dalam rangka kerja Gin, perisian tengah Cors boleh diperkenalkan menggunakan kod berikut:

r := gin.Default()
r.Use(cors.Default())
Salin selepas log masuk

Selepas memperkenalkan perisian tengah ini, kami boleh menghantar permintaan kepada API di bawah nama domain yang berbeza tanpa perlu risau tentang Pengesahan CORS gagal.

5. Ringkasan

Artikel ini terutamanya memperkenalkan mekanisme middleware bagi rangka kerja Gin dan aplikasinya Dalam pembangunan sebenar, middleware memainkan peranan yang sangat penting. Melalui pemahaman yang mendalam tentang mekanisme perisian tengah, kami boleh menggunakan fungsinya dengan lebih baik dan meningkatkan kecekapan pembangunan dan kebolehselenggaraan program kami.

Dengan memperkenalkan middleware biasa, kami juga boleh menjadikan program ini mempunyai lebih banyak fungsi, seperti output log, pengendalian ralat, permintaan merentas domain, dll., supaya dapat menyesuaikan diri dengan lebih baik kepada senario aplikasi sebenar.

Oleh itu, dalam proses pembangunan rangka kerja Gin, menguasai penggunaan perisian tengah adalah kemahiran yang sangat penting.

Atas ialah kandungan terperinci Penjelasan terperinci tentang middleware rangka kerja Gin dan aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter Jul 29, 2023 am 10:53 AM

Cara melaksanakan middleware tersuai dalam CodeIgniter Pengenalan: Dalam pembangunan web moden, middleware memainkan peranan penting dalam aplikasi. Ia boleh digunakan untuk melaksanakan beberapa logik pemprosesan yang dikongsi sebelum atau selepas permintaan sampai kepada pengawal. CodeIgniter, sebagai rangka kerja PHP yang popular, juga menyokong penggunaan middleware. Artikel ini akan memperkenalkan cara untuk melaksanakan perisian tengah tersuai dalam CodeIgniter dan memberikan contoh kod mudah. Gambaran keseluruhan Middleware: Middleware ialah sejenis permintaan

Apakah prinsip perisian tengah tomcat Apakah prinsip perisian tengah tomcat Dec 27, 2023 pm 04:40 PM

Prinsip perisian tengah tomcat dilaksanakan berdasarkan spesifikasi Java Servlet dan Java EE. Sebagai bekas Servlet, Tomcat bertanggungjawab untuk memproses permintaan dan respons HTTP dan menyediakan persekitaran berjalan untuk aplikasi Web. Prinsip-prinsip perantara Tomcat terutamanya melibatkan: 1. Model kontena 2. Mekanisme pemprosesan Servlet 5. Pengurusan konfigurasi 7. Penyambung dan pengimbangan; teknologi; 9. Mod terbenam, dsb.

Melaksanakan pengesahan pengguna menggunakan middleware dalam rangka kerja Slim Melaksanakan pengesahan pengguna menggunakan middleware dalam rangka kerja Slim Jul 29, 2023 am 10:22 AM

Melaksanakan pengesahan pengguna menggunakan perisian tengah dalam rangka kerja Slim Dengan pembangunan aplikasi web, pengesahan pengguna telah menjadi ciri penting. Untuk melindungi maklumat peribadi pengguna dan data sensitif, kami memerlukan kaedah yang boleh dipercayai untuk mengesahkan identiti pengguna. Dalam artikel ini, kami akan memperkenalkan cara untuk melaksanakan pengesahan pengguna menggunakan perisian tengah rangka kerja Slim. Rangka kerja Slim ialah rangka kerja PHP ringan yang menyediakan cara yang mudah dan pantas untuk membina aplikasi web. Salah satu ciri yang berkuasa adalah bahagian tengah

Cara mengendalikan pengesahan borang menggunakan middleware dalam Laravel Cara mengendalikan pengesahan borang menggunakan middleware dalam Laravel Nov 02, 2023 pm 03:57 PM

Cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel, contoh kod khusus diperlukan Pengenalan: Pengesahan borang ialah tugas yang sangat biasa dalam Laravel. Untuk memastikan kesahihan dan keselamatan data yang dimasukkan oleh pengguna, kami biasanya mengesahkan data yang diserahkan dalam borang. Laravel menyediakan fungsi pengesahan borang yang mudah dan juga menyokong penggunaan perisian tengah untuk mengendalikan pengesahan borang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel dan memberikan contoh kod khusus.

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Nov 02, 2023 am 09:40 AM

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Pengenalan: Apabila membangunkan aplikasi web menggunakan rangka kerja Laravel, pecutan data adalah kunci untuk meningkatkan prestasi aplikasi. Middleware ialah ciri penting yang disediakan oleh Laravel yang mengendalikan permintaan sebelum ia mencapai pengawal atau sebelum respons dikembalikan. Artikel ini akan menumpukan pada cara menggunakan perisian tengah untuk mencapai pecutan data dalam Laravel dan memberikan contoh kod khusus. 1. Apakah middleware itu adalah mekanisme dalam rangka kerja Laravel

Cara menggunakan perisian tengah untuk transformasi tindak balas dalam Laravel Cara menggunakan perisian tengah untuk transformasi tindak balas dalam Laravel Nov 03, 2023 am 09:57 AM

Cara menggunakan middleware untuk penukaran respons dalam Laravel Middleware ialah salah satu ciri yang sangat berkuasa dan praktikal dalam rangka kerja Laravel. Ia membolehkan kami memproses permintaan dan respons sebelum permintaan memasuki pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, saya akan menunjukkan cara menggunakan perisian tengah untuk transformasi respons dalam Laravel. Sebelum memulakan, pastikan anda memasang Laravel dan projek baharu dibuat. Sekarang kita akan mengikuti langkah berikut: Cipta perisian tengah baru Terbuka

Cara menggunakan perisian tengah untuk pemulihan data dalam Laravel Cara menggunakan perisian tengah untuk pemulihan data dalam Laravel Nov 02, 2023 pm 02:12 PM

Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak cara cepat dan mudah untuk membina aplikasi web yang cekap, selamat dan berskala. Apabila membangunkan aplikasi Laravel, kita sering perlu mempertimbangkan isu pemulihan data, iaitu, cara memulihkan data dan memastikan operasi normal aplikasi sekiranya berlaku kehilangan atau kerosakan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah Laravel untuk melaksanakan fungsi pemulihan data dan menyediakan contoh kod khusus. 1. Apa itu Lara?

Cara menyediakan perkongsian sumber merentas domain (CORS) menggunakan perisian tengah dalam rangka kerja Slim Cara menyediakan perkongsian sumber merentas domain (CORS) menggunakan perisian tengah dalam rangka kerja Slim Jul 30, 2023 pm 08:34 PM

Cara menyediakan Perkongsian Sumber Silang Asal (CORS) menggunakan perisian tengah dalam rangka kerja Slim Perkongsian Sumber Silang Asal (CORS) ialah mekanisme yang membolehkan pelayan menetapkan beberapa maklumat tambahan dalam pengepala respons HTTP untuk memberitahu penyemak imbas sama ada Benarkan silang -permintaan asal. Dalam sesetengah projek dengan pemisahan bahagian hadapan dan bahagian belakang, mekanisme CORS boleh digunakan untuk merealisasikan permintaan silang domain bahagian hadapan untuk antara muka bahagian belakang. Apabila menggunakan rangka kerja Slim untuk membangunkan REST API, kita boleh menggunakan middleware (Middleware)

See all articles