httprouter

package module
v0.0.0-...-2009da5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2019 License: Apache-2.0 Imports: 4 Imported by: 0

README

Mir.httprouter

Mir.httprouter module provide mir.Engine implement backend by httprouter.

Usage
package main

import(
	"github.com/alimy/mir"
    "github.com/julienschmidt/httprouter"
	"log"
	"net/http"
	
	mirE "github.com/alimy/mir/module/httprouter"
)

type site struct {
	index mir.Get       `mir:"/index/"`
	articles mir.Get    `mir:"/articles/:category/#GetArticles"`
}

// Index handler of the index field that in site struct, the struct tag indicate
// this handler will register to path "/index/" and method is http.MethodGet.
func (h *site) Index(rw http.ResponseWriter, r *http.Request, p httprouter.Params) {
	rw.WriteHeader(http.StatusOK)
	rw.Header().Add("Content-Type", "text/plain; charset=utf-8")
	rw.Write([]byte("Index"))
}

// GetArticles handler of articles indicator that contains Host/Path/Handler info.
// Path info is the second or first(if no host info) segment start with '/'(eg: /articles/:category)
// Handler info is forth info start with '#' that indicate real handler method name(eg: GetArticles).if no handler info will
// use field name capital first char as default handler name(eg: if articles had no #GetArticles then the handler name will
// is Articles) 
func (h *site) GetArticles(rw http.ResponseWriter, r *http.Request, p httprouter.Params) {
	rw.WriteHeader(http.StatusOK)
	rw.Header().Add("Content-Type", "text/plain; charset=utf-8")
    rw.Write([]byte("GetArticles"))
}

func main() {
	// Create a new httprouter instance
	 r := httprouter.New()             
	
	// Register handler to engine by mir
	mirE.Register(r, &site{})
	
	// Start http serve
	log.Fatal(http.ListenAndServe(":8080", r))
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Mir

func Mir(r *httprouter.Router) mir.Engine

Mir return mir.Engine interface implements instance.Used to register routes to httprouter with struct tag string's information.

func Register

func Register(r *httprouter.Router, entries ...interface{}) error

Register use entries's info to register handler to httprouter router.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL