mirror of
				https://github.com/gin-gonic/gin.git
				synced 2025-11-04 09:12:12 +08:00 
			
		
		
		
	Merge branch 'master' of https://github.com/ngerakines/gin into ngerakines-master
It adds MustGet() method in context. Conflicts: examples/example_basic.go
This commit is contained in:
		
						commit
						8f3f3597f3
					
				
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							@ -284,14 +284,14 @@ func main() {
 | 
				
			|||||||
func Logger() gin.HandlerFunc {
 | 
					func Logger() gin.HandlerFunc {
 | 
				
			||||||
    return func(c *gin.Context) {
 | 
					    return func(c *gin.Context) {
 | 
				
			||||||
        t := time.Now()
 | 
					        t := time.Now()
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        // Set example variable
 | 
					        // Set example variable
 | 
				
			||||||
        c.Set("example", "12345")
 | 
					        c.Set("example", "12345")
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        // before request
 | 
					        // before request
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        c.Next()
 | 
					        c.Next()
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        // after request
 | 
					        // after request
 | 
				
			||||||
        latency := time.Since(t)
 | 
					        latency := time.Since(t)
 | 
				
			||||||
        log.Print(latency)
 | 
					        log.Print(latency)
 | 
				
			||||||
@ -305,10 +305,10 @@ func Logger() gin.HandlerFunc {
 | 
				
			|||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
    r := gin.New()
 | 
					    r := gin.New()
 | 
				
			||||||
    r.Use(Logger())
 | 
					    r.Use(Logger())
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    r.GET("/test", func(c *gin.Context){
 | 
					    r.GET("/test", func(c *gin.Context){
 | 
				
			||||||
        example := r.Get("example").(string)
 | 
					        example := c.MustGet("example").(string)
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        // it would print: "12345"
 | 
					        // it would print: "12345"
 | 
				
			||||||
        log.Println(example)
 | 
					        log.Println(example)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ func main() {
 | 
				
			|||||||
	}))
 | 
						}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	authorized.POST("admin", func(c *gin.Context) {
 | 
						authorized.POST("admin", func(c *gin.Context) {
 | 
				
			||||||
		user := c.Get(gin.AuthUserKey).(string)
 | 
							user := c.MustGet(gin.AuthUserKey).(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Parse JSON
 | 
							// Parse JSON
 | 
				
			||||||
		var json struct {
 | 
							var json struct {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										24
									
								
								gin.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								gin.go
									
									
									
									
									
								
							@ -355,20 +355,24 @@ func (c *Context) Set(key string, item interface{}) {
 | 
				
			|||||||
	c.Keys[key] = item
 | 
						c.Keys[key] = item
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns the value for the given key.
 | 
					// Get returns the value for the given key or an error if the key does not exist.
 | 
				
			||||||
// It panics if the value doesn't exist.
 | 
					func (c *Context) Get(key string) (interface{}, error) {
 | 
				
			||||||
func (c *Context) Get(key string) interface{} {
 | 
					 | 
				
			||||||
	var ok bool
 | 
					 | 
				
			||||||
	var item interface{}
 | 
					 | 
				
			||||||
	if c.Keys != nil {
 | 
						if c.Keys != nil {
 | 
				
			||||||
		item, ok = c.Keys[key]
 | 
							item, ok := c.Keys[key]
 | 
				
			||||||
	} else {
 | 
							if ok {
 | 
				
			||||||
		item, ok = nil, false
 | 
								return item, nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if !ok || item == nil {
 | 
						return nil, errors.New("Key does not exist.")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// MustGet returns the value for the given key or panics if the value doesn't exist.
 | 
				
			||||||
 | 
					func (c *Context) MustGet(key string) interface{} {
 | 
				
			||||||
 | 
						value, err := c.Get(key)
 | 
				
			||||||
 | 
						if err != nil || value == nil {
 | 
				
			||||||
		log.Panicf("Key %s doesn't exist", key)
 | 
							log.Panicf("Key %s doesn't exist", key)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return item
 | 
						return value
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/************************************/
 | 
					/************************************/
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user