aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Eisenmann <simon@struktur.de>2014-04-07 15:24:27 +0200
committerSimon Eisenmann <simon@struktur.de>2014-04-07 15:24:27 +0200
commitb6e507d5c39fbdd8e0868da8601678531810a8e5 (patch)
tree8c31d5c5ed18217d3af17410aa00ade4ae59ca40
parents/muxPointer/mux/ (diff)
downloadsleepy-b6e507d5c39fbdd8e0868da8601678531810a8e5.tar.gz
sleepy-b6e507d5c39fbdd8e0868da8601678531810a8e5.tar.bz2
sleepy-b6e507d5c39fbdd8e0868da8601678531810a8e5.zip
Added support to add API resources with a wrapper handler function.
-rw-r--r--core.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/core.go b/core.go
index 3aa0c7c..1c16cfb 100644
--- a/core.go
+++ b/core.go
@@ -127,6 +127,15 @@ func (api *API) AddResource(resource interface{}, paths ...string) {
}
}
+// AddResourceWithWrapper behaves exactly like AddResource but wraps
+// the generated handler function with a give wrapper function to allow
+// to hook in Gzip support and similar.
+func (api *API) AddResourceWithWrapper(resource interface{}, wrapper func(handler http.HandlerFunc) http.HandlerFunc, paths ...string) {
+ for _, path := range paths {
+ api.Mux().HandleFunc(path, wrapper(api.requestHandler(resource)))
+ }
+}
+
// Start causes the API to begin serving requests on the given port.
func (api *API) Start(port int) error {
if !api.muxInitialized {
bgstack15