mirror of
				https://github.com/gin-gonic/gin.git
				synced 2025-11-04 17:22:12 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/gin-gonic/gin"
 | 
						|
)
 | 
						|
 | 
						|
var DB = make(map[string]string)
 | 
						|
 | 
						|
func main() {
 | 
						|
	// Disable Console Color
 | 
						|
	// gin.DisableConsoleColor()
 | 
						|
	r := gin.Default()
 | 
						|
 | 
						|
	// Ping test
 | 
						|
	r.GET("/ping", func(c *gin.Context) {
 | 
						|
		c.String(200, "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(200, gin.H{"user": user, "value": value})
 | 
						|
		} else {
 | 
						|
			c.JSON(200, gin.H{"user": user, "status": "no value"})
 | 
						|
		}
 | 
						|
	})
 | 
						|
 | 
						|
	// Authorized group (uses gin.BasicAuth() middleware)
 | 
						|
	// Same than:
 | 
						|
	// authorized := r.Group("/")
 | 
						|
	// authorized.Use(gin.BasicAuth(gin.Credentials{
 | 
						|
	//	  "foo":  "bar",
 | 
						|
	//	  "manu": "123",
 | 
						|
	//}))
 | 
						|
	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(200, gin.H{"status": "ok"})
 | 
						|
		}
 | 
						|
	})
 | 
						|
 | 
						|
	// Listen and Server in 0.0.0.0:8080
 | 
						|
	r.Run(":8080")
 | 
						|
}
 |