В Go lang вы также можете создать промежуточное программное обеспечение, ниже я написал процесс создания обработчика как validateMiddleware
, а затем вызвал его при запросе TestEndpoint
API.
func main() {
router := mux.NewRouter()
router.HandleFunc("/test", ValidateMiddleware(TestEndpoint)).Methods("GET")
log.Fatal(http.ListenAndServe(":12345", router))
}
А теперьВы можете создать свой обработчик validateMiddleware
как:
func ValidateMiddleware(next http.HandlerFunc) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
authorizationHeader := req.Header.Get("authorization")
if authorizationHeader != "" {
// if true, then request for next handler.
next(w, req)
} else {
json.NewEncoder(w).Encode(Exception{Message: "Invalid authorization token"})
return
}
})
}
И, наконец, создать оригинальный запрашиваемый обработчик TestEndpoint
func TestEndpoint(w http.ResponseWriter, req *http.Request) {
fmt.Println("Hello Go middleware!!!")
}