ডেভসংকেত

জিন-গনিক

জিন হল একটি HTTP ওয়েব ফ্রেমওয়ার্ক যা Go (গোলাং) এ লেখা। এটিতে মার্টিনির মতো এপিআই বৈশিষ্ট্য রয়েছে, তবে মার্টিনির চেয়ে 40 গুণ দ্রুত কর্মক্ষমতা সহ। আপনার যদি ভাল পারফরম্যান্সের প্রয়োজন হয় তবে জিন আপনার জন্য ।

কন্ট্রিবিউটর

    শেয়ার করুন

    ইনিশিয়ালাইজেশন

    • মডিউল ইনিশিয়ালাইজেশন

      go mod init github.com/<username>/<projectname>
    • জিন ইনস্টল

      go get -u github.com/gin-gonic/gin
    • ফাইল তৈরি করা

      touch main.go
    • জিন ইম্পোর্ট করা

      import "github.com/gin-gonic/gin"

    সার্ভার রান করা

    • 8080 পোর্টে সার্ভার রান করা

      router.Run()
    • যেকোন পোর্টে সার্ভার রান করা

      router.Run(":3000") // 3000 পোর্টে সার্ভার রান করা

    জিন রাউটার এর মেথড

    • GET

      router.GET("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • POST

      router.POST("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • PUT

      router.PUT("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • DELETE

      router.DELETE("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • PATCH

      router.PATCH("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • HEAD

      router.HEAD("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • OPTIONS

      router.OPTIONS("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • Any

      router.Any("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })

    ফাইল রেন্ডার করা

    • এইচটিএমএল ফাইল রেন্ডার করা

      router.GET("/", func(c *gin.Context) {
      	c.HTML(http.StatusOK, "index.html", gin.H{})
      })
    • যেকোন ফাইল রেন্ডার করা

      router.GET("/", func(c *gin.Context) {
      	c.File("index.html")
      })
    • static ফোল্ডার থেকে ফাইল রেন্ডার করা

      router.Static("/asset", "./asset")

    জিন রাউটার এর মিডলওয়্যার

    • লগার মিডলওয়্যার

      router.Use(gin.Logger())
    • স্ট্যাটিক ফাইল সার্ভ করার মিডলওয়্যার

      router.Use(gin.Static("/assets", "./assets"))
    • রিকভারি মিডলওয়্যার

      router.Use(gin.Recovery())
    • মিডলওয়্যার যোগ করা এবং প্যারামিটার নেওয়া

      router.Use(gin.RecoveryWithWriter(io.Writer))
    • কাস্টম মিডলওয়্যার

      router.Use(func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })

    জিন রাউটার এর গ্রুপ

    • গ্রুপ যোগ করা

      router.Group("/users")
    • গ্রুপ এর মিডলওয়্যার যোগ করা

      users:= router.Group("/users", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • গ্রুপ এর রাউটার যোগ করা

      users.GET("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })

    জিন রাউটার এর কন্টেক্সট

    • কন্টেক্সট থেকে প্যারামিটার নেওয়া

      c.Param("id")
    • জেসন তৈরি করা

      c.BindJSON(&user)
    • জেসন রিটার্ন করা

      c.JSON(http.StatusOK, gin.H{
      	"message": "ok"
      })
    • xml রিটার্ন করা

      c.XML(http.StatusOK, gin.H{
      	"message": "ok"
      })
    • yaml রিটার্ন করা

      c.YAML(http.StatusOK, gin.H{
      	"message": "ok"
      })
    • স্ট্রিং রিটার্ন করা

      c.String(http.StatusOK, "string")
    • এইচটিএমএল রিটার্ন করা

      c.HTML(http.StatusOK, "index.tmpl", gin.H{
      	"title": "Main website"
      })
    • redirect করা

      c.Redirect(http.StatusMovedPermanently, "http://google.com")
    • Request এর মেথড

      c.Request
    • ফর্ম এর মান নেওয়া

      c.Request.FormValue("id")
    • content-type নেওয়া

      c.ContentType()
    • রিকুয়েস্ট এর হেডার নেওয়া

      c.Request.Header
    • রিকুয়েস্ট এর বডি নেওয়া

      c.Request.Body
    • রিকুয়েস্ট এর মেথড নেওয়া

      c.Request.Method
    • রিকুয়েস্ট এর URL নেওয়া

      c.Request.URL
    • রিকুয়েস্ট এর প্যাথ নেওয়া

      c.Request.URL.Path
    • রিকুয়েস্ট এর কোয়েরি স্ট্রিং নেওয়া

      c.Request.URL.RawQuery
    • রিকুয়েস্ট এর host নেওয়া

      c.Request.URL.Host

    মেইন ফাংশন

    • মেইন ফাংশন

      func main() {
      	// এখানে কোড লিখুন
      }

    জিন রাউটার

    • জিন রাউটার ইনিশিয়ালাইজেশন

      router := gin.Default()

    জিন রাউটার এর প্যারামিটার

    • প্যারামিটার নেই

      router.GET("/", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })
    • প্যারামিটার আছে

      router.GET("/:id", func(c *gin.Context) {
      	// এখানে কোড লিখুন
      })

    ফাইল উপলোড

    • একটি ফাইল আপলোড করা

      router.POST("/upload", func(c *gin.Context) {
      	file, _ := c.FormFile("file")
      	c.SaveUploadedFile(file, file.Filename)
      })
    • একাধিক ফাইল আপলোড করা

      router.POST("/upload", func(c *gin.Context) {
      	form, _ := c.MultipartForm()
      	files := form.File["files"]
      	for _, file := range files {
      		c.SaveUploadedFile(file, file.Filename)
      	}
      })

    কাস্টম মিডলওয়্যার তৈরি করা

    • কাস্টম মিডলওয়্যার তৈরি করা

      func MyCustomMiddleware() gin.HandlerFunc {
      	return func(c *gin.Context) {
      		// এখানে কোড লিখুন
      	}
      }

    কুকি এর ব্যবহার

    • কুকি সেট করা

      c.SetCookie("cookie_name", "cookie_value", 3600, "/", "example.com", false, true)
    • কুকি পাওয়া

      cookie, err := c.Cookie("cookie_name")
    • কুকি ডিলিট করা

      c.SetCookie("cookie_name", "", -1, "/", "example.com", false, true)

    ডেভসংকেত সম্পর্কে

    ডেভসংকেত এর লক্ষ্য হচ্ছে বাংলাতে একটা বড় চিটশিটের ভান্ডার গড়ে তোলা। এটা সম্পূর্ণ স্বাধীন এবং ওপেন সোর্স গিটহাব অর্গানাইজেশন।

    স্পন্সর