routergroup

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2025 License: MIT Imports: 1 Imported by: 0

README

Router groups

En RouterGroup kan brukes for å gruppere en samling endepunkter under samme prefix. Den kan også brukes til å definere et sett med Middleware som skal gjelde for endepunktene som er registrert på denne gruppen.

Ta i bruk

Eksmpel på bruk:

    sb1skAdapter := sb1sk.NewAdapter(config.Sb1skTokenPath, config.Sb1skHost)
    router := http.NewServeMux()
    sb1Middlwares := routergroup.SB1Middlewares(sb1skAdapter)

    routerGroup := &routergroup.RouterGroup{
        Prefix: "/api/common/banking", 
        Middlewares: sb1Middlwares, 
        Mux: router
    }

Middlewares defineres som en funksjon som tar en http.Handler som argument og returnerer en http.Handler.:

    logTime := func(next http.Handler) http.Handler {
        return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
            start := time.Now()
            next.ServeHTTP(w, r)
            log.Printf("Request took: %v", time.Since(start))
        })
    }

    router := http.NewServeMux()
    routerGroup := &routergroup.RouterGroup{
        Prefix: "/api/common/banking", 
        Middlewares: []routergroup.Middleware{logTime}, 
        Mux: router
    }

Registrering av routes:

    routergroup.HandleFunc("GET", "/watchlists", getAll)
    routergroup.HandleFunc("POST", "/watchlists", post)

    func getAll (w http.ResponseWriter, r *http.Request) {
        // ...
        w.WriteHeader(http.StatusOk)
    }

    func post (w http.ResponseWriter, r *http.Request) {
        //...
        w.WriteHeader(http.StatusCreated)
    }

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Middleware

type Middleware func(http.Handler) http.Handler

type RouterGroup

type RouterGroup struct {
	Prefix      string
	Middlewares []Middleware
	Mux         *http.ServeMux
}

func NewRouterGroup

func NewRouterGroup(prefix string, mux *http.ServeMux) *RouterGroup

func (*RouterGroup) HandleFunc

func (g *RouterGroup) HandleFunc(method string, pattern string, handlerFunc http.HandlerFunc)

func (*RouterGroup) Use

func (g *RouterGroup) Use(mw Middleware)

Jump to

Keyboard shortcuts

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