我在Gin中设置了默认路由器和一些路由:
router := gin.Default()
router.POST("/users", save)
router.GET("/users",getAll)
Run Code Online (Sandbox Code Playgroud)
但是如何处理杜松子酒中没有找到404路线?
最初,我使用的是我理解Gin使用的httprouter,所以这就是我原来的...
router.NotFound = http.HandlerFunc(customNotFound)
Run Code Online (Sandbox Code Playgroud)
和功能:
func customNotFound(w http.ResponseWriter, r *http.Request) {
//return JSON
return
}
Run Code Online (Sandbox Code Playgroud)
但这不适用于杜松子酒.
我需要能够使用以下命令返回JSON,c *gin.Context以便我可以使用:
c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"})
Run Code Online (Sandbox Code Playgroud) 我想让我的应用程序服务于以下事物。
我做了如下代码:
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.Static("/", "/www")
apiv1 := r.Group("api/v1")
{
apiv1.GET("/disk", diskSpaceHandler)
apiv1.GET("/memory", memoryHandler)
apiv1.GET("/cpu", cpuHandler)
}
r.Run(":80")
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它恐慌:
panic: path segment '/api/v1/disk' conflicts with existing wildcard '/*filepath' in path '/api/v1/disk'
Run Code Online (Sandbox Code Playgroud)
我明白为什么它会恐慌,但我不知道如何解决。
我脑子里只有两件事:
先感谢您。