Rumah > Artikel > pembangunan bahagian belakang > Amalan terbaik untuk teknologi Golang dalam pembangunan laman web
Dalam pembangunan tapak web, memilih susunan teknologi yang betul adalah penting, dan Golang, sebagai bahasa pengaturcaraan yang berkuasa, juga mempunyai banyak amalan terbaik dalam pembangunan tapak web. Artikel ini akan memperkenalkan beberapa amalan terbaik teknologi Golang dalam pembangunan tapak web dan memberikan beberapa contoh kod khusus.
Gin ialah rangka kerja web HTTP yang pantas, yang boleh digunakan untuk membina aplikasi web yang stabil dan cekap dengan cepat. Berikut ialah contoh pelayan web mudah:
package main import "github.com/gin-gonic/gin" func main() { router := gin.Default() router.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello, Gin!", }) }) router.Run(":8080") }
Dalam pembangunan laman web, operasi pangkalan data sering diperlukan, dan Golang juga menyediakan banyak perpustakaan operasi pangkalan data yang sangat baik. Berikut ialah contoh penggunaan Gorm untuk operasi MySQL:
package main import ( "gorm.io/driver/mysql" "gorm.io/gorm" ) type User struct { ID int Name string } func main() { dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } db.AutoMigrate(&User{}) user := User{Name: "Alice"} db.Create(&user) var result User db.First(&result, 1) fmt.Println(result) }
Dalam pembangunan laman web, pengendalian permintaan serentak adalah sangat penting. Golang sememangnya menyokong pemprosesan serentak Berikut ialah contoh penggunaan goroutine:
package main import ( "fmt" "time" ) func main() { for i := 0; i < 10; i++ { go func(i int) { fmt.Println("goroutine", i) }(i) } time.Sleep(time.Second) }
Dalam pembangunan tapak web, pengesahan pengguna adalah bahagian penting. Pengesahan pengguna boleh menjadi mudah dan cekap menggunakan JWT Berikut ialah contoh pengesahan JWT:
package main import ( "github.com/dgrijalva/jwt-go" "net/http" "time" ) var secretKey = []byte("secret") func GenerateToken() (string, error) { token := jwt.New(jwt.SigningMethodHS256) claims := token.Claims.(jwt.MapClaims) claims["authorized"] = true claims["exp"] = time.Now().Add(time.Hour * 24).Unix() tokenString, err := token.SignedString(secretKey) if err != nil { return "", err } return tokenString, nil } func AuthMiddleware(next http.HandlerFunc) http.HandlerFunc { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { tokenString := r.Header.Get("Authorization") token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { return secretKey, nil }) if err != nil || !token.Valid { w.WriteHeader(http.StatusUnauthorized) w.Write([]byte("Unauthorized")) return } next.ServeHTTP(w, r) }) } func main() { http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) { token, err := GenerateToken() if err != nil { w.WriteHeader(http.StatusInternalServerError) w.Write([]byte("Internal Server Error")) return } w.WriteHeader(http.StatusOK) w.Write([]byte(token)) }) http.Handle("/protected", AuthMiddleware(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) w.Write([]byte("You are authorized")) })) http.ListenAndServe(":8080", nil) }
Dalam pembangunan laman web, terdapat banyak amalan terbaik untuk aplikasi teknologi Golang, dengan menggunakan rangka kerja Gin, operasi pangkalan data, pemprosesan concurrency, JWT Ciri-ciri seperti pengesahan membolehkan anda membina aplikasi web yang stabil dengan lebih cekap. Saya harap contoh kod khusus ini dapat membantu pembangun menggunakan teknologi Golang dengan lebih baik dalam pembangunan tapak web.
Atas ialah kandungan terperinci Amalan terbaik untuk teknologi Golang dalam pembangunan laman web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!