今回は、再度プロジェクトでnegroniを使うことになりましたので、記録用としてnegroniパッケージについてまとめていきたいと思います。
詳しい情報はDocを参考してください。
negroniパッケージとは
- negroniはWeb Serverのライフサイクルを管理し、全てのリクエストを受け取って処理します。
- GoのWeb FrameworkのMartiniを開発した開発者が開発しました。
- GoのWebミドルウェアに対する慣用的なアプローチです。
- 機能を拡張するより様々なパッケージが連動されている形で動作できるようにミドルウェアの形をしています。
使い方
package main
import (
"github.com/urfave/negroni"
"net/http"
"fmt"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "Welcome to the home page!")
})
n := negroni.Classic()
n.UseHandler(mux)
n.Run(":3000")
}
- github.com/urfave/negroni:negroniを使うためにパッケージをimportします。
- n := negroni.Classic():negroniミドルウェア生成し、代入します。
- n.UseHandler(mux):negroniにmuxをハンドラとして登録します。
ハンドラ登録
ハンドラを登録するにはUse関数を使います。

- 上記はSessions()、LoginRequired()をハンドラとして登録しています。
