Rumah > Artikel > pembangunan bahagian belakang > Ketahui tentang lima pemalam paling popular di Golang: the big reveal
Rahsia pemalam Golang: Untuk memahami lima pemalam paling popular, contoh kod khusus diperlukan
Pengenalan: Dengan perkembangan pesat Golang dalam bidang pembangunan web, semakin ramai pembangun mula gunakan Golang untuk membangunkan aplikasi mereka sendiri. Bagi pembangun Golang, pemalam ialah alat penting untuk meningkatkan kecekapan pembangunan dan mengembangkan fungsi. Artikel ini akan membawa anda melalui lima pemalam paling popular di Golang dan memberikan contoh kod yang sepadan.
1. Pemalam rangka kerja Gin
Gin ialah salah satu rangka kerja web yang paling popular di Golang. Ia menyediakan cara yang cepat dan ringkas untuk membina aplikasi web berprestasi tinggi. Rangka kerja Gin menyediakan banyak pemalam perisian tengah yang boleh membantu pembangun melaksanakan pengesahan, pengelogan, pengendalian ralat dan fungsi lain.
Berikut ialah contoh yang menunjukkan cara menggunakan pemalam pengesahan rangka kerja Gin:
package main import ( "github.com/gin-gonic/gin" "github.com/appleboy/gin-jwt" ) func main() { r := gin.Default() // 身份验证中间件 authMiddleware, err := jwt.New(&jwt.GinJWTMiddleware{ Realm: "test zone", Key: []byte("secret key"), Timeout: time.Hour, MaxRefresh: time.Hour, IdentityKey: "id", Authenticator: func(c *gin.Context) (interface{}, error) { var loginVals Login if err := c.ShouldBind(&loginVals); err != nil { return "", jwt.ErrMissingLoginValues } userID := loginVals.UserID password := loginVals.Password if (userID == "admin" && password == "admin") || (userID == "test" && password == "test") { return userID, nil } return nil, jwt.ErrFailedAuthentication }, PayloadFunc: func(data interface{}) jwt.MapClaims { if v, ok := data.(string); ok { return jwt.MapClaims{"id": v} } return jwt.MapClaims{} }, IdentityHandler: func(c *gin.Context) interface{} { claims := jwt.ExtractClaims(c) return claims["id"] }, }) if err != nil { log.Fatalf("Failed to create JWT middleware: %v", err) } // 使用身份验证中间件 r.Use(authMiddleware.MiddlewareFunc()) // 添加保护路由 r.GET("/protected", authMiddleware.MiddlewareFunc(), func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"data": "protected"}) }) // 启动服务器 if err := r.Run(":8080"); err != nil { log.Fatal("Failed to start server: ", err) } }
2. Pemalam baris arahan Cobra
Cobra ialah rangka kerja baris arahan yang biasa digunakan di Golang, yang boleh membantu pembangun membina elegan aplikasi baris arahan. Ia menyediakan API yang ringkas dan mudah digunakan yang boleh membantu pembangun mentakrifkan arahan, subperintah, bendera, parameter, dsb.
Berikut ialah contoh yang menunjukkan cara menggunakan pemalam Cobra untuk mentakrifkan aplikasi baris arahan yang mudah:
package main import ( "log" "github.com/spf13/cobra" ) func main() { rootCmd := &cobra.Command{ Use: "myapp", Short: "A simple CLI application", Run: func(cmd *cobra.Command, args []string) { // 执行应用程序的主要逻辑 log.Println("Hello, Gopher!") }, } // 添加子命令 rootCmd.AddCommand(&cobra.Command{ Use: "greet", Short: "Greet the user", Run: func(cmd *cobra.Command, args []string) { log.Println("Hello, " + args[0]) }, }) // 启动命令行应用程序 if err := rootCmd.Execute(); err != nil { log.Fatal("Failed to start CLI application: ", err) } }
3. Pemalam pangkalan data GORM
GORM ialah perpustakaan ORM (Pemetaan Perhubungan Objek) paling popular di Golang API yang ringkas dan mudah digunakan untuk membantu pembangun mengendalikan pangkalan data dengan mudah.
Berikut ialah contoh yang menunjukkan cara menggunakan pemalam GORM untuk menyambung ke pangkalan data MySQL dan mencipta model data ringkas dan jadual pangkalan data:
package main import ( "log" "gorm.io/driver/mysql" "gorm.io/gorm" ) type User struct { ID uint Name string Age int } func main() { dsn := "username: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 { log.Fatal("Failed to connect database: ", err) } // 迁移数据表 err = db.AutoMigrate(&User{}) if err != nil { log.Fatal("Failed to migrate database: ", err) } // 创建用户 user := User{Name: "Alice", Age: 18} result := db.Create(&user) if result.Error != nil { log.Fatal("Failed to create user: ", result.Error) } log.Println("Created user:", user) // 查询用户 var users []User result = db.Find(&users) if result.Error != nil { log.Fatal("Failed to query users: ", result.Error) } log.Println("Users:", users) }
4 Viper Profile Plugin
Viper ialah perpustakaan profil paling popular di Golang , yang menyokong berbilang format fail konfigurasi (seperti JSON, YAML, TOML, dll.) dan boleh membantu pembangun membaca dan menghuraikan fail konfigurasi dengan mudah.
Berikut ialah contoh yang menunjukkan cara menggunakan pemalam Viper untuk membaca dan menghuraikan fail konfigurasi dalam format JSON:
package main import ( "log" "github.com/spf13/viper" ) func main() { viper.SetConfigFile("config.json") err := viper.ReadInConfig() if err != nil { log.Fatal("Failed to read config file: ", err) } data := viper.GetString("data") log.Println("Data:", data) dbHost := viper.GetString("database.host") dbPort := viper.GetInt("database.port") dbUser := viper.GetString("database.user") dbPassword := viper.GetString("database.password") log.Println("Database:", dbHost, dbPort, dbUser, dbPassword) }
5. Pemalam pembolehubah persekitaran Godotenv
Godotenv ialah perpustakaan pembolehubah persekitaran yang biasa digunakan di Golang , yang boleh membantu pembangun daripada Muatkan pembolehubah persekitaran daripada fail dan tetapkannya sebagai pembolehubah persekitaran untuk proses semasa.
Berikut ialah contoh yang menunjukkan cara menggunakan pemalam Godotenv untuk memuatkan pembolehubah persekitaran daripada fail .env:
package main import ( "log" "github.com/joho/godotenv" ) func main() { err := godotenv.Load(".env") if err != nil { log.Fatal("Failed to load .env file: ", err) } dbHost := os.Getenv("DB_HOST") dbPort := os.Getenv("DB_PORT") dbUser := os.Getenv("DB_USER") dbPassword := os.Getenv("DB_PASSWORD") log.Println("Database:", dbHost, dbPort, dbUser, dbPassword) }
Kesimpulan: Di atas ialah pengenalan terperinci dan kod contoh untuk lima pemalam paling popular di Golang. Sama ada pembangunan web, pembangunan aplikasi baris arahan atau operasi pangkalan data, pemalam ini boleh membantu pembangun menyediakan penyelesaian yang lebih cekap. Saya harap artikel ini akan membantu anda memahami pemalam Golang!
Atas ialah kandungan terperinci Ketahui tentang lima pemalam paling popular di Golang: the big reveal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!