Gorilla Mux Go: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Gorilla Mux क्या है और इसकी ज़रूरत क्यों है?

Gorilla Mux (अक्सर इसे सिर्फ "mux" कहा जाता है, जो "multiplexer" का छोटा रूप है) Go प्रोग्रामिंग भाषा के लिए एक शक्तिशाली और लोकप्रिय HTTP राउटर है। यह Gorilla Web Toolkit इकोसिस्टम का हिस्सा है, जो वेब डेवलपमेंट के लिए कई उपयोगी कंपोनेंट प्रदान करता है।

जब Go की स्टैंडर्ड लाइब्रेरी में पहले से net/http मौजूद है, तो अलग राउटर की क्या ज़रूरत है? स्टैंडर्ड http.ServeMux साधारण प्रोजेक्ट्स के लिए ठीक है, लेकिन इसमें कई सीमाएँ हैं:

  • डायनामिक पथ सेगमेंट का समर्थन नहीं (जैसे /users/{id})।
  • HTTP मेथड्स का समर्थन नहीं (GET, POST, PUT, DELETE) — इसे मैन्युअली चेक करना पड़ता है।
  • रूट्स में रेगुलर एक्सप्रेशन का समर्थन नहीं।
  • बिल्ट-इन middleware नहीं (मिडलवेयर)।

Gorilla Mux इन सभी समस्याओं को हल करता है। यह आपको यह सब करने देता है:

  • वेरिएबल पार्ट्स के साथ जटिल रूट्स डिफाइन करना।
  • रूट्स को HTTP मेथड्स, होस्ट्स, हेडर्स और query-पैरामीटर्स के आधार पर सीमित करना।
  • रूट्स को ग्रुप करने के लिए सबराउटर (subrouters) का उपयोग करना।
  • आसानी से middleware के साथ इंटीग्रेट करना।
  • साफ और समझने योग्य URL के साथ RESTful API बनाना।

Gorilla Mux लाइब्रेरी Go में HTTP सर्वर बनाने का डी-फैक्टो स्टैंडर्ड है। इसका उपयोग छोटे माइक्रोसर्विसेज से लेकर बड़े कमर्शियल एप्लिकेशन तक, हज़ारों प्रोजेक्ट्स में किया जाता है।

इंस्टॉलेशन

Go प्रोजेक्ट में Gorilla Mux इंस्टॉल करना पैकेज मैनेजर go get के ज़रिए किया जाता है। अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल खोलें और यह कमांड चलाएँ:

go get -u github.com/gorilla/mux

यह कमांड लाइब्रेरी को डाउनलोड करेगी और इसे आपकी go.mod फ़ाइल में जोड़ देगी। इसके बाद आप इसे अपने कोड में इम्पोर्ट कर सकते हैं:

import "github.com/gorilla/mux"

अगर आप Go Modules का उपयोग कर रहे हैं (जो Go 1.16+ के लिए स्टैंडर्ड है), तो लाइब्रेरी आपकी go.mod और go.sum फ़ाइलों में अपने आप जुड़ जाएगी। अब आप काम करने के लिए तैयार हैं!

त्वरित शुरुआत: Gorilla Mux के साथ एक सरल HTTP सर्वर

चलिए एक मिनिमल वेब सर्वर बनाते हैं जो रूट पथ पर GET अनुरोधों को हैंडल करेगा और एक स्वागत संदेश लौटाएगा।

package main

import (
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    // एक नया राउटर बनाएँ
    r := mux.NewRouter()

    // रूट डिफाइन करें: GET /
    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "नमस्ते दुनिया! यह Gorilla Mux है!")
    })

    // सर्वर को पोर्ट 8080 पर शुरू करें
    log.Println("सर्वर http://localhost:8080 पर शुरू हुआ")
    log.Fatal(http.ListenAndServe(":8080", r))
}

इस कोड को चलाएँ (go run main.go) और ब्राउज़र में http://localhost:8080 खोलें। आपको "नमस्ते दुनिया! यह Gorilla Mux है!" संदेश दिखाई देगा।

ध्यान दें: हम अपने राउटर r को http.ListenAndServe में पास कर रहे हैं। यह संभव है क्योंकि mux.Router http.Handler इंटरफ़ेस को लागू करता है।

Gorilla Mux के मुख्य तरीके और फंक्शन

लाइब्रेरी के प्रमुख तरीकों पर नज़र डालते हैं। प्रत्येक तरीके के साथ विवरण, पैरामीटर और एक काम करने वाला उदाहरण दिया गया है।

1. mux.NewRouter()

यह क्या करता है: राउटर का एक नया इंस्टेंस बनाता है। यह सभी रूट्स के लिए शुरुआती बिंदु है।

पैरामीटर: कोई नहीं।

रिटर्न करता है: mux.Router का एक पॉइंटर।

r := mux.NewRouter()
// अब r रूट्स डिफाइन करने के लिए तैयार है

2. r.HandleFunc(path, handler)

यह क्या करता है: दिए गए पथ के लिए एक हैंडलर फंक्शन रजिस्टर करता है। यह रूट्स डिफाइन करने का मुख्य तरीका है।

पैरामीटर:

  • path (string): URL टेम्पलेट (उदाहरण के लिए

अनुशंसाएँ