এই অধ্যায়টির মাধ্যমে বণিক ফ্রেমওয়ার্কে 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")
}