এই অধ্যায়টির মাধ্যমে বণিক ফ্রেমওয়ার্কে GET, POST এবং অন্যান্য অনুরোধ পরামিতি কীভাবে পেতে হয়, পাঠের মাধ্যমে বিস্তারিত আলোচনা করা হয়, কুকিজের পঠন এবং লেখার বিষয়ে।

পথে প্যারামিটারগুলি

func main() {
    app : = iris.Default ()

    // এই হ্যান্ডলারটি /ব্যবহারকারী / জন, তবে / ব্যবহারকারী / বা / ব্যবহারকারী / মেলবে
    app.Get ("/ ব্যবহারকারী / {নাম}", কার্য(ctx iris.Context) {
        নাম: = ctx.Params (). Get ("নাম")
        ctx.Writef ("হ্যালো% s", নাম)
    })

    // তবে, এই হ্যান্ডলারটি / ব্যবহারকারী / জন / এবং / ব্যবহারকারী / জন / প্রেরণ মেলবে
    // যদি কোনও অন্যান্য রাউটার / ব্যবহারকারী / জন / মেলে না, তবে এটি / ব্যবহারকারী / জন / পূর্বনির্ধারিতে পুনর্নির্দেশ করবে
    app.Get ("/ ব্যবহারকারী / {নাম} / {কর্ম: পথ}", কার্য(ctx iris.Context) {
        নাম: = ctx.Params (). Get ("নাম")
        অ্যাকশন: = ctx.Params (). Get ("কর্ম")
        বার্তা: = নাম + "হ'লো" + অ্যাকশন
        ctx.WriteString (বার্তা)
    })

    // প্রতিটি মেলানো অনুরোধের জন্য, সংদর্ভটি রাউটারের সংজ্ঞান রাখবে
    app.Post ("/ ব্যবহারকারী / {নাম: স্ট্রিং} / {কর্ম: পথ}", কার্য(ctx iris.Context) {
        ctx.GetCurrentRoute (). Tmpl (). Src == "/ ব্যবহারকারী / {নাম: স্ট্রিং} / {কর্ম: পথ}" // সত্য
    })

    app.Listen (": 8080")
}

প্রিয় পারামিটার প্রকারগুলি:

| প্যারামিটার ধরণ | গো প্রকার | যাচাই | অ্যাক্সেস সহায়ক ফাংশন | |: - |: - |: - |: - | | : স্ট্রিং | স্ট্রিং | যেকোনো বিষয়বস্তু (একক পাথ সেগমেন্ট) | Params (). Get | | : ইউইডি | স্ট্রিং | uuidv4 বা v1 (একক পাথ সেগমেন্ট) | Params (). Get | | : ইন্ট | int | -9223372036854775808 থেকে 9223372036854775807 (x64) বা -2147483648 থেকে 2147483647 (x32), অধীন, host শ্রেষ্ঠাচারের উপর নির্ভর করে | Params (). GetInt | | : ইন্ট8 | int8 | -128 থেকে 127 | Params (). GetInt8 | | : ইন্ট16 | int16 | -32768 থেকে 32767 | Params (). GetInt16 | | : ইন্ট32 | int32 | -2147483648 থেকে 2147483647 | Params (). GetInt32 | | : ইন্ট64 | int64 | -9223372036854775808 থেকে 9223372036854775807 | Params (). GetInt64 | | : ইউন্ট | ইউন্ট | 0 থেকে 18446744073709551615 (x64) বা 0 থেকে 4294967295 (x32), অধীন, host শ্রেষ্ঠাচারের উপর নির্ভর করে | Params (). GetUint | | : ইউন্ট8 | ইউন্ট8 | 0 থেকে 255 | Params (). GetUint8 | | : ইউন্ট16 | ইউন্ট16 | 0 থেকে 65535 | Params (). GetUint16 | | : ইউইট32 | ইউন্ট32 | 0 থেকে 4294967295 | Params (). GetUint32 | | : ইউন্ট64 | ইউন্ট64 | 0 থেকে 18446744073709551615 | Params (). GetUint64 | | : বুল | বুল | "1" বা "t" বা "T" বা "TRUE" বা "true" বা "True" বা "0" বা "f" বা "F" বা "FALSE" বা "false" বা "False" | Params (). GetBool | | : আক্ষরিক | স্ট্রিং | ছোট অথবা বড় হরফ | Params (). Get | | : ফাইল | স্ট্রিং | ছোট হরফ, সংখ্যা, আন্ডারস্কোর (_), হাইফেন (-), পিপি (.), অন্যান্য অবৈধ ফাইল বৈশিষ্ট্যমূলক বর্ণ বা অন্যান্য স্থানিক চেহারা সম্পাদিত না করতে পারে | Params (). Get | | : পথ | স্ট্রিং | যেকোনো বিষয়বস্তু, স্ল্যাশ (পাথ সেগমেন্ট) দ্বারা পৃথক হতে পারে, কিন্তু রাউট পাথের শেষ অংশ হবে | Params (). Get | | : মেইল | স্ট্রিং | ইমেল ঠিকানা, ডোমেইন যাচাই করা হয় না | Params (). Get | | : ইমেল | স্ট্রিং | ইমেল ঠিকানা, ডোমেন যাচাই করা | Params (). Get | | : তারিখ | স্ট্রিং | ফরম্যাট ইইইই / মম / ডড, উদাহরণস্বরূপ / ব্লগ / {প্যারামেটার: তারিখ} / ম্যাচেস / ব্লগ / 2022/04/21 | Params (). GetTime এবং Params ().SimpleDate | | : সোমবার | ইউইন্ট (0-6) বা স্ট্রিং | স্ট্রিংটি হতে হবে একটি সময়.উইকডে ধ্রুবক ("রবিবার" থেকে "মঙ্গলবার" বা "রবিবার" থেকে "মঙ্গলবার") ফরম্যাট, উদাহরণস্বরূপ / সময়সূচি / {প্যারামেটার: সোমবার} / ম্যাচ / সময়সূচি / মঙ্গলবার | Params ().GetWeekday |

func main() {
    app := iris.Default()

    // বিদ্যমান লো-লেভেল রিকুয়েস্ট অবজেক্ট ব্যবহার করে কুয়েরি স্ট্রিং প্যারামিটার বিশ্লেষণ করুন।
    // অনুরোধ URL ম্যাচ: /welcome?firstname=Jane&lastname=Doe
    app.Get("/welcome", func(ctx iris.Context) {
        firstname := ctx.URLParamDefault("firstname", "Guest")
        lastname := ctx.URLParam("lastname") // শর্টকাট ctx.Request().URL.Query().Get("lastname")

        ctx.Writef("হ্যালো %s %s", firstname, lastname)
    })
    app.Listen(":8080")
}
func main() {
    app := iris.Default()

    app.Post("/form_post", func(ctx iris.Context) {
        message := ctx.PostValue("message")
        nick := ctx.PostValueDefault("nick", "অজানা")

        ctx.JSON(iris.Map{
            "status":  "প্রকাশিত",
            "message": message,
            "nick":    nick,
        })
    })
    app.Listen(":8080")
}
POST /post?id=1234&page=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded

name=kataras&message=this_is_great
func main() {
    app := iris.Default()

    app.Post("/post", func(ctx iris.Context) {
        id, err := ctx.URLParamInt("id", 0)
        if err != nil {
            ctx.StopWithError(iris.StatusBadRequest, err)
            return
        }

        page := ctx.URLParamIntDefault("page", 0)
        name := ctx.PostValue("name")
        message := ctx.PostValue("message")

        ctx.Writef("id: %d; page: %d; name: %s; message: %s", id, page, name, message)
    })
    app.Listen(":8080")
}
id: 1234; page: 1; name: kataras; message: this_is_great
POST /post?id=a&id=b&id=c&name=john&name=doe&name=kataras
Content-Type: application/x-www-form-urlencoded
func main() {
    app := iris.Default()

    app.Post("/post", func(ctx iris.Context) {

        ids := ctx.URLParamSlice("id")
        names, err := ctx.PostValues("name")
        if err != nil {
            ctx.StopWithError(iris.StatusBadRequest, err)
            return
        }

        ctx.Writef("ids: %v; names: %v", ids, names)
    })
    app.Listen(":8080")
}
ids: [a b c], names: [john doe kataras]
import "github.com/kataras/iris/v12"

func main() {
    app := iris.Default()

    app.Get("/cookie", func(ctx iris.Context) {
        // কুকি পড়ুন
        value := ctx.GetCookie("my_cookie")

        if value == "" {
            value = "না সেট"
            // কুকি তৈরি করুন
            ctx.SetCookieKV("my_cookie", value)
            // অথবা: ctx.SetCookie(&http.Cookie{...})
            // কুকি তৈরি করুন
            ctx.SetCookie("", "টেস্ট", 3600, "/", "localhost", false, true)
        }

        ctx.Writef("কুকি মান: %s \n", value)
    })

    app.Listen(":8080")
}