गो फाइबर फ्रेमवर्क में विभिन्न अनुरोध पैरामीटरों का हैंडलिंग
सरल उदाहरण
फाइबर फ्रेमवर्क में सभी अनुरोध पैरामीटर 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"
// ...
})