fc3741365c
* Add Swagger spec test script * Fix Swagger spec errors not related to statuses with polls * Add API tests that post a status with a poll * Fix creating a status with a poll from form params * Fix Swagger spec errors related to statuses with polls (this is the last error) * Fix Swagger spec warnings not related to unused definitions * Suppress a duplicate list update params definition that was somehow causing wrong param names * Add Swagger test to CI - updates Drone config - vendorizes go-swagger - fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version * Put `Sample: ` on its own line everywhere * Remove unused id param from emojiCategoriesGet * Add 5 more pairs of profile fields to account update API Swagger * Remove Swagger prefix from dummy fields It makes the generated code look weird * Manually annotate params for statusCreate operation * Fix all remaining Swagger spec warnings - Change some models into operation parameters - Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields) * Documented that creating a status with scheduled_at isn't implemented yet * sign drone.yml * Fix filter API Swagger errors * fixup! Fix filter API Swagger errors --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com> |
||
---|---|---|
.. | ||
LICENSE | ||
README.md | ||
canonical.go | ||
compress.go | ||
cors.go | ||
doc.go | ||
handlers.go | ||
logging.go | ||
proxy_headers.go | ||
recovery.go |
README.md
gorilla/handlers
Package handlers is a collection of handlers (aka "HTTP middleware") for use
with Go's net/http
package (or any framework supporting http.Handler
), including:
- LoggingHandler for logging HTTP requests in the Apache Common Log Format.
- CombinedLoggingHandler for logging HTTP requests in the Apache Combined Log Format commonly used by both Apache and nginx.
- CompressHandler for gzipping responses.
- ContentTypeHandler for validating requests against a list of accepted content types.
- MethodHandler for matching HTTP methods against handlers in a
map[string]http.Handler
- ProxyHeaders for populating
r.RemoteAddr
andr.URL.Scheme
based on theX-Forwarded-For
,X-Real-IP
,X-Forwarded-Proto
and RFC7239Forwarded
headers when running a Go server behind a HTTP reverse proxy. - CanonicalHost for re-directing to the preferred host when handling multiple domains (i.e. multiple CNAME aliases).
- RecoveryHandler for recovering from unexpected panics.
Other handlers are documented on the Gorilla website.
Example
A simple example using handlers.LoggingHandler
and handlers.CompressHandler
:
import (
"net/http"
"github.com/gorilla/handlers"
)
func main() {
r := http.NewServeMux()
// Only log requests to our admin dashboard to stdout
r.Handle("/admin", handlers.LoggingHandler(os.Stdout, http.HandlerFunc(ShowAdminDashboard)))
r.HandleFunc("/", ShowIndex)
// Wrap our server with our gzip handler to gzip compress all responses.
http.ListenAndServe(":8000", handlers.CompressHandler(r))
}
License
BSD licensed. See the included LICENSE file for details.