Skip to content

Instantly share code, notes, and snippets.

@d-smith
Created November 23, 2015 17:44
Show Gist options
  • Select an option

  • Save d-smith/a6b68dbfc498f03160f9 to your computer and use it in GitHub Desktop.

Select an option

Save d-smith/a6b68dbfc498f03160f9 to your computer and use it in GitHub Desktop.
multiroute code - prototype
//Package multiroute defines an interface needed for plugins that support routes with multiple backends.
package plugin
import (
"net/http"
"errors"
)
type MultiRouteHandler struct {
backendMap map[string]http.Handler
}
func NewMultiRouteHandler() *MultiRouteHandler {
return &MultiRouteHandler{}
}
func (m *MultiRouteHandler) GetHandlerForBackend(backendName string) (http.Handler,error) {
handler, ok := m.backendMap[backendName]
if !ok {
return errors.New("No handler for backend " + backendName)
}
return handler
}
func (m *MultiRouteHandler) AddHandlerForBackend(backendName string, handler http.Handler) {
m.backendMap[backendName] = handler
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment