github.com/clevergo/middleware

module github.com/clevergo/middleware

v1.0.1
Latest Go to latest
Published: today | License: BSD-3-Clause

Source Code

README

Middleware Build Status Coverage Status Go Report Card GoDoc Release

Collections of HTTP middlewares.

Middlewares

Example

package main

import (
	"compress/gzip"
	"fmt"
	"log"
	"net/http"
	"os"

	"github.com/clevergo/clevergo"
	"github.com/clevergo/middleware"
	"github.com/gorilla/handlers"
)

var users = map[string]string{
	"foo": "bar",
}

func main() {
	app := clevergo.New(":1234")
	app.Use(
		handlers.RecoveryHandler(),
		middleware.Compress(gzip.DefaultCompression),
		middleware.Logging(os.Stdout),
	)
	app.Get("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprint(w, "hello world")
	})
	auth := app.Group("/auth", clevergo.RouteGroupMiddleware(
		middleware.BasicAuth(func(username, password string) bool {
			if passwd, exists := users[username]; exists && passwd == password {
				return true
			}
			return false
		}),
	))
	auth.Get("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprint(w, "authenticated")
	})
	log.Fatal(app.ListenAndServe())
}
Source: github.com/clevergo/middleware@v1.0.1/README.md