Home  >  Article  >  Backend Development  >  Recommended selected excellent Go language projects

Recommended selected excellent Go language projects

王林
王林Original
2024-03-23 21:57:04841browse

Recommended selected excellent Go language projects

As a programming language, Go language has been widely used in various projects. It is loved by many developers for its efficiency, speed and simplicity. This article will recommend some excellent Go language projects to everyone and provide specific code examples.

Gorilla Mux

[Gorilla Mux](https://github.com/gorilla/mux) is a powerful Go language HTTP router. It supports regular expression-based URL matching, as well as flexible routing matching rules. The following is a simple example that demonstrates how to use Gorilla Mux to create a simple HTTP server and define several routes:

package main

import (
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Welcome to our website!"))
    })

    r.HandleFunc("/products/{category}/{id:[0-9]+}", func(w http.ResponseWriter, r *http.Request) {
        vars := mux.Vars(r)
        w.Write([]byte("Category: " + vars["category"] + ", ID: " + vars["id"]))
    })

    http.Handle("/", r)
    http.ListenAndServe(":8000", nil)
}

Gorm

[Gorm](https://gorm.io /) is an excellent Go language ORM library used to simplify interaction with relational databases. It supports a variety of databases, including MySQL, PostgreSQL, SQLite, etc. The following is a simple example showing how to use Gorm to connect to a MySQL database and perform simple add, delete, modify and query operations:

package main

import (
    "fmt"

    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type Product struct {
    ID    uint
    Name  string
    Price float64
}

func main() {
    dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        fmt.Println("Failed to connect to database")
        return
    }

    db.AutoMigrate(&Product{})

    // Create
    db.Create(&Product{Name: "Apple", Price: 1.5})

    // Read
    var product Product
    db.First(&product, 1) // find product with id 1
    fmt.Println(product)

    // Update
    db.Model(&product).Update("Price", 2.0)

    // Delete
    db.Delete(&product)
}

Gin

[Gin](https://gin-gonic.com /) is a lightweight HTTP web framework with excellent performance and ease of use. The following is a simple example showing how to use Gin to create a simple HTTP server and define several routes:

package main

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

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Welcome to our website!")
    })

    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello "+name)
    })

    r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(200, gin.H{"username": username, "password": password})
    })

    r.Run(":8000")
}

The above recommended projects are all very practical tools in the Go language development process. I hope they can Provide help to developers who are learning or using Go language. If interested, you can delve into more features and usage of these items.

The above is the detailed content of Recommended selected excellent Go language projects. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn