2015-09-07 12 views
6

ho installato un router di default e alcune rotte in Gin:Impostazione di percorso non si trovano in Gin

router := gin.Default() 
router.POST("/users", save) 
router.GET("/users",getAll) 

ma come faccio a gestire 404 percorso non trovato in Gin?

Originariamente, stavo usando httprouter che capisco Gin utilizza quindi questo era quello che aveva originariamente ...

router.NotFound = http.HandlerFunc(customNotFound) 

e la funzione:

func customNotFound(w http.ResponseWriter, r *http.Request) { 
    //return JSON 
    return 
} 

ma questo non funzionerà con Gin.

ho bisogno di essere in grado di restituire JSON utilizzando il c *gin.Context in modo che posso usare:

c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"}) 

risposta

18

Quello che stai cercando è il gestore NoRoute.

Più precisamente:

r := gin.Default() 

r.NoRoute(func(c *gin.Context) { 
    c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"}) 
}) 
+0

Sì ho visto che, ma come faccio a rendere il contesto gin disponibili? – tommyd456

+0

Hai visto la firma di NoRoute? Riceve un gestore, che viene quindi passato al contesto. È questo che vuoi dire? –

+0

Puoi fornire un esempio di cosa intendi usando/passando il contesto – tommyd456

Problemi correlati