Как мне написать промежуточное ПО golang, которое обрабатывает ответ / ошибку от API? - PullRequest
0 голосов
/ 15 октября 2018

По сути, я хочу написать одно промежуточное ПО, которое закрывает объект транзакции, создаваемый во время запроса.Я использую Gorilla Mux.Я знаком с промежуточным программным обеспечением Python-Django, и оно дает правильную обработку ошибок или ответов.но не смог найти ничего похожего с golang

1 Ответ

0 голосов
/ 15 октября 2018

В 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!!!")
}
...