1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-01 17:38:37 +00:00

Compress JSON, CSS and Javascript responses

This commit is contained in:
Frédéric Guillot 2018-07-19 19:27:05 -07:00
parent a291d8a38b
commit 9f6533ece9
14 changed files with 41 additions and 35 deletions

View file

@ -9,14 +9,14 @@ import (
"errors"
"net/http"
"github.com/miniflux/miniflux/http/response"
"github.com/miniflux/miniflux/logger"
)
// OK sends a JSON response with the status code 200.
func OK(w http.ResponseWriter, v interface{}) {
func OK(w http.ResponseWriter, r *http.Request, v interface{}) {
commonHeaders(w)
w.WriteHeader(http.StatusOK)
w.Write(toJSON(v))
response.Compress(w, r, toJSON(v))
}
// Created sends a JSON response with the status code 201.

View file

@ -23,7 +23,7 @@ func NotModified(w http.ResponseWriter) {
}
// Cache returns a response with caching headers.
func Cache(w http.ResponseWriter, r *http.Request, mimeType, etag string, content []byte, duration time.Duration) {
func Cache(w http.ResponseWriter, r *http.Request, mimeType, etag string, data []byte, duration time.Duration) {
w.Header().Set("Content-Type", mimeType)
w.Header().Set("ETag", etag)
w.Header().Set("Cache-Control", "public")
@ -31,8 +31,14 @@ func Cache(w http.ResponseWriter, r *http.Request, mimeType, etag string, conten
if etag == r.Header.Get("If-None-Match") {
w.WriteHeader(http.StatusNotModified)
} else {
w.Write(content)
return
}
switch mimeType {
case "text/javascript; charset=utf-8", "text/css; charset=utf-8":
Compress(w, r, data)
default:
w.Write(data)
}
}