Skip to content

SeptiyanAndika/go-echo-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-echo-boilerplate

Simple boilerplate modular using Echo Framework (Golang)

HOW-TO

Before you start, please make sure that you have install glide and start mysql. Afterward, please follow below steps.

  1. Clone this project.
  2. In current directory, execute glide install.
  3. Update mysql config in config.toml.
  4. Last, go run main.go

Middleware Authorizer

Middleware Authorizer can support multiple roles, like in in modules/user/main.go

  1. All roles can acess
e.GET("/restricted", restricted, utils.Authorizer())
  1. Only roles user can access
e.GET("/restricted-user", restricted, utils.Authorizer("user"))
  1. Only roles admin can access
e.GET("/restricted-admin", restricted, utils.Authorizer("admin"))
  1. Roles admin and rols user can access
e.GET("/restricted-user-admin", restricted, utils.Authorizer("admin", "user"))

RequestHandler

RequestHandler in file utils/request will parsing, validate and excecute logic functions

err, result := utils.RequestHandler(c, new(LoginRequest), UserLogic.Login)

  • c is context
  • LoginRequest is struct request paramater
  • UserLogic.Login is a functions logic
func Login(c echo.Context) error {

	err, result := utils.RequestHandler(c, new(LoginRequest), UserLogic.Login)
	if err != nil {
		return utils.ErrorResponse(c, err)
	}
	return utils.SuccessResponse(c, result)

}
type LoginRequest struct {
	Email    string `json:"email" xml:"email" form:"email" query:"email" valid:"email,required"`
	Password string `json:"password" xml:"password" form:"password" query:"password"  valid:"required,length(6|50)"`
}
func (l *Logic) Login(ctx echo.Context, params interface{}) (error, interface{}) {
    paramater := params.(*LoginRequest)
    
    .....
    .....
    .....

}

About

Simple boilerplate modular using Echo Framework (Golang)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages