गो फाइबर फ्रेमवर्क में विभिन्न अनुरोध पैरामीटरों का हैंडलिंग

सरल उदाहरण

फाइबर फ्रेमवर्क में सभी अनुरोध पैरामीटर context ऑब्ज

बॉडी पैरामीटर्स का प्रसंस्करण

इसका मुख्य उपयोग POST/PUT अनुरोधों को प्रसंस्कृत करने के लिए है और यह JSON, XML, और फॉर्म पैरामीटर्स का समर्थन करता है।

// पैरामीटर प्राप्त करने के लिए संरचना को परिभाषित करें, और जो पैरामीटर फ़ील्ड नाम आप json, xml, और फ़ॉर्म टैग के माध्यम से प्राप्त करना चाहते हैं, उन्हें परिभाषित करें
// आवश्यकता अनुसार json, xml, form का चयन किया जा सकता है; सभी को शामिल करना आवश्यक नहीं है
type Person struct {
    Name string `json:"name" xml:"name" form:"name"`
    Pass string `json:"pass" xml:"pass" form:"pass"`
}

app.Post("/", func(c *fiber.Ctx) error {
    // पैरामीटर प्राप्त करने के लिए संरचना चर परिभाषित करें
    p := new(Person)

    // BodyParser का उपयोग करके बॉडी पैरामीटर्स को चर परिभाषित करने के लिए
    if err := c.BodyParser(p); err != nil {
        return err
    }

    log.Println(p.Name) // john
    log.Println(p.Pass) // doe

    // ...
})

// विभिन्न प्रकार के अनुरोधों के उदाहरण; JSON प्रारूप पैरामीटर अनुरोधों के लिए, Content-Type: application/json सेट करना न भूलें

// curl -X POST -H "Content-Type: application/json" --data "{\"name\":\"john\",\"pass\":\"doe\"}" localhost:3000

// curl -X POST -H "Content-Type: application/xml" --data "<login><name>john</name><pass>doe</pass></login>" localhost:3000

// curl -X POST -H "Content-Type: application/x-www-form-urlencoded" --data "name=john&pass=doe" localhost:3000

// curl -X POST -F name=john -F pass=doe http://localhost:3000

// curl -X POST "http://localhost:3000/?name=john&pass=doe"

कैसे मूल बॉडी डाटा को पुनः प्राप्त करें, इसके लिए निम्नलिखित है:

// curl -X POST http://localhost:8080 -d user=john

app.Post("/", func(c *fiber.Ctx) error {
  // BodyRaw का उपयोग करके रॉ बॉडी डेटा वापस करें
  return c.Send(c.BodyRaw()) // []byte("user=john")
})

अनुरोध हेडर पुनः प्राप्त करना

app.Get("/", func(c *fiber.Ctx) error {
  c.Get("Content-Type")       // "text/plain"
  c.Get("CoNtEnT-TypE")       // "text/plain"
  c.Get("something", "john")  // "john"
  // ...
})

ग्राहक IP पुनः प्राप्त करना

app.Get("/", func(c *fiber.Ctx) error {
  c.IP() // "127.0.0.1"

  // ...
})

यदि आप प्रॉक्सी या लोड बैलेंसर का उपयोग करके सर्वर पर निगमित हैं, तो निम्नलिखित सेट करके x-forwarded-for हेडर के माध्यम से ग्राहक का IP पुनः प्राप्त करने की आवश्यकता होती है:

app := fiber.New(fiber.Config{
  ProxyHeader: fiber.HeaderXForwardedFor,
})

कुकीज़ पढ़ना

app.Get("/", func(c *fiber.Ctx) error {
  // कुंजी द्वारा कुकी प्राप्त करें:
  c.Cookies("name")         // "john"
  c.Cookies("empty", "doe") // "doe"
  // ...
})