mm

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2023 License: MIT Imports: 1 Imported by: 0

README

mm

mm is a middleware-middleware for multiple rules.

It provides middleware that changes the middlewares used based on the request.

Usage

Prepare an instance that implements mm.Builder interface.

Then, generate the middleware ( func(next http.Handler) http.Handler ) with mm.New

package main

import (
    "log"
    "net/http"

    "github.com/2manymws/mm"
)

func main() {
    r := http.NewServeMux()
    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Hello World"))
    })

    var b mm.Builder = newMyBuilder()
    m := mm.New(b)

    log.Fatal(http.ListenAndServe(":8080", m(r)))
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(builders ...Builder) func(next http.Handler) http.Handler

New returns a new middleware-middleware.

Types

type Builder

type Builder interface {
	Middleware(req *http.Request) (func(next http.Handler) http.Handler, bool)
}

Builder is a middleware builder.

Jump to

Keyboard shortcuts

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