Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Penghalaan URL Fleksibel dalam Go?

Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Penghalaan URL Fleksibel dalam Go?

Barbara Streisand
Lepaskan: 2024-11-26 20:45:15
asal
318 orang telah melayarinya

How Can I Use Regular Expressions for Flexible URL Routing in Go?

Menggunakan Ungkapan Biasa untuk Memetakan URL dalam Go

Dalam Go, menggunakan ungkapan biasa untuk memadankan URL membolehkan penghalaan URL yang lebih fleksibel dan ekspresif. Walau bagaimanapun, bergantung pada fungsi http.HandleFunc() untuk tujuan ini adalah tidak sesuai.

Fungsi http.HandleFunc() ditujukan terutamanya untuk memadankan laluan tetap atau subpokok berakar. Ia tidak menyokong penggunaan ungkapan biasa. Untuk mencapainya, anda perlu mendaftarkan pengendali kepada subpokok berakar (cth., /), dan kemudian melaksanakan pemadanan regexp tersuai dan penghalaan dalam pengendali.

Pertimbangkan contoh berikut:

import (
  "fmt"
  "net/http"
  "regexp"
)

var rNum = regexp.MustCompile(`\d`)  // Matches URLs with digits
var rAbc = regexp.MustCompile(`abc`) // Matches URLs containing "abc"

func main() {
  http.HandleFunc("/", route)
  http.ListenAndServe(":8080", nil)
}

func route(w http.ResponseWriter, r *http.Request) {
  switch {
  case rNum.MatchString(r.URL.Path):
    digits(w, r)
  case rAbc.MatchString(r.URL.Path):
    abc(w, r)
  default:
    w.Write([]byte("Unknown Pattern"))
  }
}

func digits(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte("Has digits"))
}

func abc(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte("Has abc"))
}
Salin selepas log masuk

Kod ini:

  1. Mendaftar pengendali dengan fungsi http.HandleFunc() ke padankan dengan URL punca (/).
  2. Menggunakan objek ungkapan biasa (rNum dan rAbc) untuk memadankan corak URL tertentu dalam fungsi pengendali (laluan).
  3. Menggunakan fungsi yang berbeza (digit atau abc) berdasarkan corak yang dipadankan.

Sebagai alternatif, anda boleh menggunakan perpustakaan luaran seperti Gorilla MUX untuk mencapai tahap yang lebih maju dan keupayaan penghalaan URL serba boleh.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Penghalaan URL Fleksibel dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan