kyleconroy / headers

Type-safe headers library for Golang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

stakmachine/headers

PkgGoDev GithubActions

stackmachine/headers is a type-safe API for manipulating HTTP headers. Say goodbye to stringly-typed, unsafe code.

Usage

headers.Set(r, &headers.AccessControlMaxAge(time.Minute * 3))
package main

import (
  "fmt"
  "net/http"
  "time"

  "github.com/stackmachine/headers"
)

func middleware(next http.Handler) http.Handler {
  return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    headers.Set(w, &headers.StrictTransportSecurity{
      MaxAge:            time.Hour * 24,
      IncludeSubdomains: true,
      Preload:           true,
    })
    next.ServeHTTP(w, r)
  })
}

func main() {
  mux := http.NewServeMux()
  mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
    fmt.Fprintf(w, "Welcome :D")
  })
  fmt.Println("listening on :8080")
  http.ListenAndServe(":8080", middleware(mux))
}

About

Type-safe headers library for Golang

License:MIT License


Languages

Language:Go 100.0%