code: func (a *API) ServeHTTP(res http.ResponseWriter, req *http.Request) {
  	for _, handler := range a.handlers {
  		rec := httptest.NewRecorder()
  		handler(rec, req)
  		for k, v := range rec.Header() {
  			res.Header()[k] = v
  		}
  		if rec.Code == http.StatusUnauthorized {
  			http.Error(res, "Not Authorized", http.StatusUnauthorized)
  			return
  		}
  	}
  	a.router.ServeHTTP(res, req)
  }
docs: // ServeHTTP calls api handlers and then serves request using api router