Skip to content

libgo/router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 

Repository files navigation

router is combo of httprouter and negroni.

go get -u -v github.com/libgo/router

usage:

package main

import (
	"net"
	"net/http"

	"github.com/libgo/router"
)

func Hello(rw http.ResponseWriter, r *http.Request) {
}

func MidLog(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
	// before
	next(rw, r)
	// after
}

// normal http handler
func UserGet(rw http.ResponseWriter, r *http.Request) {
	p := router.GetParams(r) // or router.GetParams(r.Context())
	_ = p.ByName("id")
}

// with params
func UserXGet(rw http.ResponseWriter, r *http.Request, p router.Params) {
	_ = p.ByName("id")
}

func main() {
	ln, err := net.Listen("tcp", "127.0.0.1:3000")
	if err != nil {
		panic(err)
	}
	defer ln.Close()

	r := router.New()
	r.GET("/hello", router.Wrap(Hello))

	// group with middleware
	api := r.Group("/api", MidLog)
	api.GET("/user/:id", router.Wrap(UserGet))
	api.GET("/user2/:id", router.WrapX(UserXGet))

	server := &http.Server{
		Handler: r,
	}

	err = server.Serve(ln)
	if err != nil {
		panic(err)
	}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages