ちがいます。
インフラエンジニアが思うミドルウェアやApacheやEnvoyなどのアプリを動かすソフトのことをさしています。
しかしGoでAPIサーバを立てるときなどに用いられるMiddlewareという言葉は、HTTPリクエストを途中で処理する層のことを指しています。
イメージとしては /topにアクセスがくる→/topを生成して返却 の流れ があるとして、この間に差し込みたい処理のことをMiddlewareと呼ぶようです。
- /topにアクセスがくる→なんらかの処理→/topを生成して返却 の流れ
Middlewareでやること
- リクエストのHTTPヘッダを書き換え
- リクエストへの一意キーの付与
- ログの出力
- 認証
- etc
などシステム全体として管理したいような処理を行います。ドメインに依存しない話ですね。
これでBasic認証が追加できるのは驚いた・・
package main import ( "github.com/goji/httpauth" "net/http" ) func main() { finalHandler := http.HandlerFunc(final) authHandler := httpauth.SimpleBasicAuth("username", "password") http.Handle("/", authHandler(finalHandler)) http.ListenAndServe(":3000", nil) } func final(w http.ResponseWriter, r *http.Request) { w.Write([]byte("OK")) }