Berkenalan Dengan Gin Framework Golang

Gin Framework Golang

Apa itu Gin ?

Gin adalah sebuah framework dari golang yang berslogan "The fastest full-featured web framework for Go. Crystal clear". yang jika diartikan yaitu kerangka web berfitur lengkap, tercepat untuk go jika kalian butuh framework yang membutuhkan kinerja yang lebih cepat dan produktifitas gin bisa jadi solusi untuk kalian semua.

Beberapa fitur keunggulan yang ada di gin yaitu sebagai berikut : 

  • Fast Berbicara soal fast atau cepat pasti semua orang ingin aplikasi nya cepat, Fast di dalam gin yaitu perutean berbasis pohon radix, foot print memori kecil. Tidak ada refleksi. Performa API yang dapat diprediksi.
  • Middleware support Permintaan HTTP yang masuk dapat ditangani oleh rantai middleware dan tindakan terakhir. Misalnya: Logger, Otorisasi, GZIP dan terakhir memposting pesan di DB.
  • Crash-free Gin dapat menangkap kepanikan yang terjadi selama permintaan HTTP dan memulihkannya. Dengan cara ini, server Anda akan selalu tersedia. Anda juga dapat melaporkan kepanikan ini ke Sentry misalnya!
  • Json validation Gin dapat mengurai dan memvalidasi JSON permintaan, memeriksa, misalnya, keberadaan nilai yang diperlukan.
  • Routes grouping Atur rute Anda dengan lebih baik. Otorisasi diperlukan vs tidak diperlukan, versi API yang berbeda. Selain itu, grup dapat disarangkan tanpa batas tanpa menurunkan performa.
  • Error management Gin menyediakan cara mudah untuk mengumpulkan semua kesalahan yang terjadi selama permintaan HTTP. Akhirnya, middleware dapat menuliskannya ke file log, ke database dan mengirimkannya melalui jaringan.
  • Rendering built-in Gin menyediakan API yang mudah digunakan untuk rendering JSON, XML dan HTML.
  • Extendable Membuat middleware baru sangat mudah, cukup periksa kode contoh.

Untuk dokumentasinya juga cukup lengkap menurut saya https://gin-gonic.com/docs/ dan juga yang pasti github star nya juga banyak, dan yang paling utama yaitu open source jika kalian menemukan bugs silahkan kunjungi githubnya dan berikan issue di github nya untuk berkontribusi https://github.com/gin-gonic/gin

Github Gin

Mari Kita Praktek

Setelah mengenal gin secara teori rasanya tidak lengkap jika kita tidak mempraktekan nya hehehe pertama buat file dengan nama main.go seperti pada code dibawah ini

package main

import (
	"net/http"

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

var db = make(map[string]string)

func setupRouter() *gin.Engine {
	// Disable Console Color
	// gin.DisableConsoleColor()
	r := gin.Default()

	// Ping test
	r.GET("/ping", func(c *gin.Context) {
		c.String(http.StatusOK, "pong")
	})

	// Get user value
	r.GET("/user/:name", func(c *gin.Context) {
		user := c.Params.ByName("name")
		value, ok := db[user]
		if ok {
			c.JSON(http.StatusOK, gin.H{"user": user, "value": value})
		} else {
			c.JSON(http.StatusOK, gin.H{"user": user, "status": "no value"})
		}
	})


	authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
		"foo":  "bar", // user:foo password:bar
		"manu": "123", // user:manu password:123
	}))

	authorized.POST("admin", func(c *gin.Context) {
		user := c.MustGet(gin.AuthUserKey).(string)

		// Parse JSON
		var json struct {
			Value string `json:"value" binding:"required"`
		}

		if c.Bind(&json) == nil {
			db[user] = json.Value
			c.JSON(http.StatusOK, gin.H{"status": "ok"})
		}
	})

	return r
}

func main() {
	r := setupRouter()
	// Listen and Server in 0.0.0.0:8080
	r.Run(":8080")
}

setelah itu ketikan perintah sebagai berikut di terminal 

## initial module
go mod init firmanjs/hello-gin

## installl gin and other package then run file main.go
go run main.go

nanti di terminal akan tampil seperti pada gambar dibawah ini

Gin install and running

Jika sudah muncul log seperti pada gambar di atas teman-teman berarti sudah berhasil menjalan kan framework gin yang berjalan di port 8080 dan endpoint atau routes yang tersedia yaitu /ping dan /user/:name buka browser dan ketikan http://localhost:8080/ping lalu http://localhost:8080/user/foo.

/user/foo

/ping

So far sampai sini aplikasi kita sudah berjalan, semoga bermanfaat bagi teman-teman, jika ada yang tidak mengerti, ada kesalahan dalam penulisan dan ada yang ingin ditanyakan bisa tulis dikolom komentar terimakasih.


Posting Komentar

0 Komentar