Mercurius gives you speed when create 'Go' applications. It lets you being focused at business.
Mercurius gives you speed to create new Go (golang) web applications and/or microservices. The most Go Web Applications' Scaffolding popular tool to let you to be more focused on your business than in your backend.
Get a Go (golang) web application and/or microservice template that includes: Internationalization, Routers, Logging, Cache, Database, Jade/Pug Template Render Engine, JWT, oAuth 2.0, Prometheus and Docker. Built on top of Macaron, all items are configured and ready to use.
go get -v github.com/novatrixtech/mercurius/...
or
go get -u github.com/novatrixtech/mercurius
go install github.com/novatrixtech/mercurius
cd $GOPATHor for Windows users
cd %GOPATH%
mercurius new
Mercurius must be called from developer's GOPATH/src dir
/conf Application configuration including environment-specific configs/conf/app Middlewares and routes configuration
/handler HTTP handlers
/locale Language specific content bundles
/lib Common libraries to be used across your app
/model Models
/public Web resources that are publicly available
/public/templates Jade templates or Native templates
/repository Database comunication following repository pattern
main.go Application entry
Setup all your routes inside the
SetupRoutesfunc in
conf/app/app.go
func SetupRoutes(app *macaron.Macaron) { app.Group("", func() { app.Get("/", handler.ListAccessPage) }, auth.LoginRequired) app.Get("/login", handler.LoginPage) app.Post("/login", binding.BindIgnErr(model.Login), handler.BasicAuth) }
Put all handler files inside the handler folder
func Hello() string { return "Hello" }
import ( "net/http" "{{.AppPath}}/lib/contx" )func User(ctx *contx.Context) { //user is the struct you want to return ctx.JSON(http.StatusOk, user) }
import ( "net/http" "{{.AppPath}}/lib/contx" )func User(ctx *contx.Context) { //user is the struct you want to return ctx.XML(http.StatusOk, user) }
The extension of the templates must be
.jade. Put the jade files inside public/templates folder
import ( "net/http" "{{.AppPath}}/lib/contx" )func User(ctx *contx.Context) { //edit is the page name you want to render ctx.HTML(http.StatusOk, "edit") }
The extension of the templates must be
.tmpl or .html. Put the Go template files inside public/templates folder
import ( "net/http" "{{.AppPath}}/lib/contx" )func User(ctx *contx.Context) { //edit is the page name you want to render ctx.NativeHTML(http.StatusOk, "edit") }
Besides binary file you need to copy locale, conf and public directories along with it in order to a Mercurius project works properly.
Check out our Sample Project at Example folder to get more information about a Mercurius implementation.