web-dev-qa-db-ja.com

ジンにルートが見つかりませんを設定する

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"})
15
tommyd456

あなたが探しているのは NoRoute ハンドラーです。

より正確に:

r := gin.Default()

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