Ginでデフォルトルーターといくつかのルートを設定しました:
router := gin.Default()
router.POST("/users", save)
router.GET("/users",getAll)
しかし、Ginで見つからない404ルートを処理するにはどうすればよいですか?
もともと、私はGinが使用していることを理解しているhttprouterを使用していたので、これは私が最初に持っていたものでした...
router.NotFound = http.HandlerFunc(customNotFound)
および機能:
func customNotFound(w http.ResponseWriter, r *http.Request) {
//return JSON
return
}
しかし、これはGinでは機能しません。
以下を使用できるように、c *gin.Context
を使用してJSONを返すことができる必要があります。
c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"})
あなたが探しているのは NoRoute
ハンドラーです。
より正確に:
r := gin.Default()
r.NoRoute(func(c *gin.Context) {
c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"})
})