且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何为所有API端点全局设置http.ResponseWriter Content-Type标头?

更新时间:2021-06-30 08:21:00

您可以为多路复用器路由器定义middleware,下面是一个示例:

You can define middleware for mux router, here is an example:

func main() {
    port := ":3000"
    var router = mux.NewRouter()
    router.Use(commonMiddleware)

    router.HandleFunc("/m/{msg}", handleMessage).Methods("GET")
    router.HandleFunc("/n/{num}", handleNumber).Methods("GET")
    // rest of code goes here
}

func commonMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.Header().Add("Content-Type", "application/json")
        next.ServeHTTP(w, r)
    })
}

文档