chi Go राउटर: पूर्ण गाइड उदाहरणों के साथ

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

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

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

chi क्या है और इसकी आवश्यकता क्यों है?

chi एक हल्का, उच्च-प्रदर्शन और Go प्रोग्रामिंग भाषा के लिए एक इडियोमैटिक HTTP राउटर है। यह वेब एप्लीकेशन और API विकसित करने के लिए बनाया गया है, जो डेवलपर्स को HTTP अनुरोधों को रूट करने के लिए एक शक्तिशाली और लचीला उपकरण प्रदान करता है।

मानक net/http पैकेज के विपरीत, chi प्रदान करता है:

  • net/http के साथ संगतता: chi पूरी तरह से http.Handler इंटरफ़ेस को लागू करता है, जिससे मौजूदा Go कोड और middleware के साथ आसानी से एकीकृत किया जा सकता है।
  • कॉन्टेक्स्ट-आधारित रूटिंग: chi middleware और हैंडलर के बीच रूट पैरामीटर (जैसे, उपयोगकर्ता ID) पास करने के लिए context.Context का उपयोग करता है।
  • नेस्टेड रूट (Subrouters): रूट को तार्किक ब्लॉकों में समूहित करने की अनुमति देता है (जैसे, /api/v1/users)।
  • Middleware ग्रुपिंग: Middleware को पूरे राउटर या रूट के विशिष्ट समूहों पर लागू किया जा सकता है।
  • CORS, लॉगिंग, कम्प्रेशन और अन्य सामान्य कार्यों के लिए अंतर्निहित समर्थन।

chi REST API, माइक्रोसर्विसेज और किसी भी वेब एप्लीकेशन को बनाने के लिए आदर्श है जहाँ एक स्वच्छ, उच्च-प्रदर्शन और आसानी से परीक्षण योग्य आर्किटेक्चर की आवश्यकता होती है।

chi की स्थापना (Installation)

chi को स्थापित करने के लिए मानक Go पैकेज मैनेजर का उपयोग करें। सुनिश्चित करें कि आपके पास Go (संस्करण 1.14 या उच्चतर) स्थापित है।

go get -u github.com/go-chi/chi/v5

इस कमांड को चलाने के बाद, लाइब्रेरी आपकी go.mod फ़ाइल में जुड़ जाएगी। यदि आप Go Modules (अनुशंसित) का उपयोग कर रहे हैं, तो import इस प्रकार दिखेगा:

import "github.com/go-chi/chi/v5"

साथ ही, middleware पैकेज भी अक्सर स्थापित किया जाता है:

go get -u github.com/go-chi/cors
go get -u github.com/go-chi/chi/v5/middleware

कोड उदाहरण के साथ त्वरित शुरुआत

आइए एक सरल HTTP सर्वर बनाएं जो GET अनुरोधों का जवाब देता है।

package main

import (
    "fmt"
    "net/http"

    "github.com/go-chi/chi/v5"
)

func main() {
    r := chi.NewRouter()

    // रूट परिभाषित करें
    r.Get("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "नमस्ते, chi!")
    })

    // सर्वर शुरू करें
    http.ListenAndServe(":3000", r)
}

इस कोड को चलाएं और ब्राउज़र में http://localhost:3000/hello खोलें। आपको "नमस्ते, chi!" संदेश दिखाई देगा।

chi के मुख्य तरीके और फ़ंक्शन

chi लाइब्रेरी के प्रमुख तरीकों पर नज़र डालते हैं। सभी उदाहरण मानते हैं कि आपने पहले ही एक राउटर बना लिया है r := chi.NewRouter()।

1. Get(pattern string, handlerFn http.HandlerFunc)

यह क्या करता है: दिए गए पथ पैटर्न के लिए HTTP GET विधि के लिए एक हैंडलर पंजीकृत करता है।

पैरामीटर:

  • pattern — पथ स्ट्रिंग (उदाहरण: /users, /users/{id})।
  • handlerFn — हैंडलर फ़ंक्शन, जो http.HandlerFunc सिग्नेचर से मेल खाता है।

उदाहरण:

r.Get("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("मुख्य पृष्ठ"))
})

2. Post(pattern string, handlerFn http.HandlerFunc)

यह क्या करता है: HTTP POST विधि के लिए एक हैंडलर पंजीकृत करता है।

पैरामीटर: Get के समान।

उदाहरण:

r.Post("/users", func(w http.ResponseWriter, r *http.Request) {
    // उपयोगकर्ता बनाने का तर्क
    w.WriteHeader(http.StatusCreated)
    w.Write([]byte("उपयोगकर्ता बनाया गया"))
})

3. Put(pattern string, handlerFn http.HandlerFunc)

यह क्या करता है: HTTP PUT विधि के लिए एक हैंडलर पंजीकृत करता है (आमतौर पर पूर्ण अपडेट के लिए उपयोग किया जाता है)।

अनुशंसाएँ