gin/ginS/gins.go

157 lines
5.3 KiB
Go
Raw Normal View History

2015-08-16 19:44:18 +03:00
// Copyright 2014 Manu Martinez-Almeida. All rights reserved.
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
package ginS
import (
"html/template"
"net/http"
"github.com/gin-gonic/gin"
2015-08-16 19:44:18 +03:00
)
2021-07-14 17:59:06 +03:00
var engine *gin.Engine
2015-08-16 19:44:18 +03:00
2021-07-14 17:59:06 +03:00
func init() {
if engine == nil {
engine = gin.Default()
}
2015-08-16 19:44:18 +03:00
}
// LoadHTMLGlob is a wrapper for Engine.LoadHTMLGlob.
2015-08-16 19:44:18 +03:00
func LoadHTMLGlob(pattern string) {
2021-07-14 17:59:06 +03:00
engine.LoadHTMLGlob(pattern)
2015-08-16 19:44:18 +03:00
}
// LoadHTMLFiles is a wrapper for Engine.LoadHTMLFiles.
2015-08-16 19:44:18 +03:00
func LoadHTMLFiles(files ...string) {
2021-07-14 17:59:06 +03:00
engine.LoadHTMLFiles(files...)
2015-08-16 19:44:18 +03:00
}
// SetHTMLTemplate is a wrapper for Engine.SetHTMLTemplate.
2015-08-16 19:44:18 +03:00
func SetHTMLTemplate(templ *template.Template) {
2021-07-14 17:59:06 +03:00
engine.SetHTMLTemplate(templ)
2015-08-16 19:44:18 +03:00
}
2016-04-15 02:16:46 +03:00
// NoRoute adds handlers for NoRoute. It return a 404 code by default.
2017-08-27 12:11:38 +03:00
func NoRoute(handlers ...gin.HandlerFunc) {
2021-07-14 17:59:06 +03:00
engine.NoRoute(handlers...)
2015-08-16 19:44:18 +03:00
}
// NoMethod is a wrapper for Engine.NoMethod.
2017-08-27 12:11:38 +03:00
func NoMethod(handlers ...gin.HandlerFunc) {
2021-07-14 17:59:06 +03:00
engine.NoMethod(handlers...)
2015-08-16 19:44:18 +03:00
}
2018-11-05 04:13:17 +03:00
// Group creates a new router group. You should add all the routes that have common middlewares or the same path prefix.
// For example, all the routes that use a common middleware for authorization could be grouped.
2017-08-27 12:11:38 +03:00
func Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup {
2021-07-14 17:59:06 +03:00
return engine.Group(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// Handle is a wrapper for Engine.Handle.
2017-08-27 12:11:38 +03:00
func Handle(httpMethod, relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.Handle(httpMethod, relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// POST is a shortcut for router.Handle("POST", path, handle)
2017-08-27 12:11:38 +03:00
func POST(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.POST(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// GET is a shortcut for router.Handle("GET", path, handle)
2017-08-27 12:11:38 +03:00
func GET(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.GET(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// DELETE is a shortcut for router.Handle("DELETE", path, handle)
2017-08-27 12:11:38 +03:00
func DELETE(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.DELETE(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// PATCH is a shortcut for router.Handle("PATCH", path, handle)
2017-08-27 12:11:38 +03:00
func PATCH(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.PATCH(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// PUT is a shortcut for router.Handle("PUT", path, handle)
2017-08-27 12:11:38 +03:00
func PUT(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.PUT(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// OPTIONS is a shortcut for router.Handle("OPTIONS", path, handle)
2017-08-27 12:11:38 +03:00
func OPTIONS(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.OPTIONS(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// HEAD is a shortcut for router.Handle("HEAD", path, handle)
2017-08-27 12:11:38 +03:00
func HEAD(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.HEAD(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// Any is a wrapper for Engine.Any.
2017-08-27 12:11:38 +03:00
func Any(relativePath string, handlers ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.Any(relativePath, handlers...)
2015-08-16 19:44:18 +03:00
}
// StaticFile is a wrapper for Engine.StaticFile.
2017-08-27 12:11:38 +03:00
func StaticFile(relativePath, filepath string) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.StaticFile(relativePath, filepath)
2015-08-16 19:44:18 +03:00
}
// Static serves files from the given file system root.
// Internally a http.FileServer is used, therefore http.NotFound is used instead
// of the Router's NotFound handler.
// To use the operating system's file system implementation,
// use :
// router.Static("/static", "/var/www")
2017-08-27 12:11:38 +03:00
func Static(relativePath, root string) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.Static(relativePath, root)
2015-08-16 19:44:18 +03:00
}
// StaticFS is a wrapper for Engine.StaticFS.
2017-08-27 12:11:38 +03:00
func StaticFS(relativePath string, fs http.FileSystem) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.StaticFS(relativePath, fs)
2015-08-16 19:44:18 +03:00
}
2019-04-22 18:11:57 +03:00
// Use attaches a global middleware to the router. ie. the middlewares attached though Use() will be
2015-08-16 19:44:18 +03:00
// included in the handlers chain for every single request. Even 404, 405, static files...
// For example, this is the right place for a logger or error management middleware.
2017-08-27 12:11:38 +03:00
func Use(middlewares ...gin.HandlerFunc) gin.IRoutes {
2021-07-14 17:59:06 +03:00
return engine.Use(middlewares...)
2015-08-16 19:44:18 +03:00
}
2019-03-21 10:12:06 +03:00
// Routes returns a slice of registered routes.
func Routes() gin.RoutesInfo {
2021-07-14 17:59:06 +03:00
return engine.Routes()
2019-03-21 10:12:06 +03:00
}
// Run attaches to a http.Server and starts listening and serving HTTP requests.
2015-08-16 19:44:18 +03:00
// It is a shortcut for http.ListenAndServe(addr, router)
2018-11-05 04:13:17 +03:00
// Note: this method will block the calling goroutine indefinitely unless an error happens.
2015-08-16 19:44:18 +03:00
func Run(addr ...string) (err error) {
2021-07-14 17:59:06 +03:00
return engine.Run(addr...)
2015-08-16 19:44:18 +03:00
}
2019-03-21 10:12:06 +03:00
// RunTLS attaches to a http.Server and starts listening and serving HTTPS requests.
2015-08-16 19:44:18 +03:00
// It is a shortcut for http.ListenAndServeTLS(addr, certFile, keyFile, router)
2018-11-05 04:13:17 +03:00
// Note: this method will block the calling goroutine indefinitely unless an error happens.
func RunTLS(addr, certFile, keyFile string) (err error) {
2021-07-14 17:59:06 +03:00
return engine.RunTLS(addr, certFile, keyFile)
2015-08-16 19:44:18 +03:00
}
2019-03-21 10:12:06 +03:00
// RunUnix attaches to a http.Server and starts listening and serving HTTP requests
2015-08-16 19:44:18 +03:00
// through the specified unix socket (ie. a file)
2018-11-05 04:13:17 +03:00
// Note: this method will block the calling goroutine indefinitely unless an error happens.
2015-08-16 19:44:18 +03:00
func RunUnix(file string) (err error) {
2021-07-14 17:59:06 +03:00
return engine.RunUnix(file)
2015-08-16 19:44:18 +03:00
}
2019-03-21 10:12:06 +03:00
// RunFd attaches the router to a http.Server and starts listening and serving HTTP requests
// through the specified file descriptor.
2019-04-22 18:11:57 +03:00
// Note: the method will block the calling goroutine indefinitely unless on error happens.
2019-03-21 10:12:06 +03:00
func RunFd(fd int) (err error) {
2021-07-14 17:59:06 +03:00
return engine.RunFd(fd)
2019-03-21 10:12:06 +03:00
}