aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/api.go
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2025-02-04 15:01:41 +0100
committerTaras Madan <tarasmadan@google.com>2025-02-05 14:45:47 +0000
commit577d049b4ea56e459da6e49f4b92fc1981c92440 (patch)
tree7e64eaf42a2032c44aa957a93210da14d594f6a2 /dashboard/app/api.go
parent8d34fd8d3a26fa93992edd4432071dd9c249cd61 (diff)
dashboard/app: pre-gzip all responses
Diffstat (limited to 'dashboard/app/api.go')
-rw-r--r--dashboard/app/api.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/dashboard/app/api.go b/dashboard/app/api.go
index 9e53bcbe2..62b0ac76e 100644
--- a/dashboard/app/api.go
+++ b/dashboard/app/api.go
@@ -111,16 +111,16 @@ func handleJSON(fn JSONHandler) http.Handler {
http.Error(w, err.Error(), status)
return
}
- w.Header().Set("Content-Type", "application/json")
- wJS := w.(io.Writer)
- if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
- w.Header().Set("Content-Encoding", "gzip")
- gw := gzip.NewWriter(w)
- defer gw.Close()
- wJS = gw
- }
+
+ wJS := newGzipResponseWriterCloser(w)
+ defer wJS.Close()
if err := json.NewEncoder(wJS).Encode(reply); err != nil {
log.Errorf(c, "failed to encode reply: %v", err)
+ return
+ }
+ w.Header().Set("Content-Type", "application/json")
+ if err := wJS.writeResult(r); err != nil {
+ log.Errorf(c, "wJS.writeResult: %s", err.Error())
}
})
}