Documentation ¶
Index ¶
- func CountryCodeHandler(next http.Handler) http.Handler
- type GeocoderResponse
- type RegionRouter
- func (reg *RegionRouter) DeleteRegionServer(countryCode string)
- func (reg *RegionRouter) GetDefaultServer() string
- func (reg *RegionRouter) GetRegionServer(countryCode string) string
- func (reg *RegionRouter) RegionHandler() func(h http.Handler) http.Handler
- func (reg *RegionRouter) ResetRegionServers()
- func (reg RegionRouter) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (reg *RegionRouter) SetDefaultServer(server string) bool
- func (reg *RegionRouter) SetRegionServer(countryCode string, server string) bool
- func (reg *RegionRouter) UpdateRegionRoutesFromConsul(config *api.ConsulConfiguration) error
- func (reg *RegionRouter) UpdateRegionRoutesFromServerDefinitions(servers []*api.ServerDefinition) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type GeocoderResponse ¶
type GeocoderResponse struct {
Country string `json:"country_code"`
}
type RegionRouter ¶
type RegionRouter struct { // HTTP Status code for redirection (defaults to http.StatusFound - 302) StatusCode int // contains filtered or unexported fields }
func NewRegionRouter ¶
func NewRegionRouter() *RegionRouter
NewRegionRouter returns a new region router instance
func (*RegionRouter) DeleteRegionServer ¶
func (reg *RegionRouter) DeleteRegionServer(countryCode string)
DeleteRegionServer unregisters the server handling requests for a specific region.
func (*RegionRouter) GetDefaultServer ¶
func (reg *RegionRouter) GetDefaultServer() string
GetDefaultServer returns the registered server handlign requests for otherwise unhandled regions
func (*RegionRouter) GetRegionServer ¶
func (reg *RegionRouter) GetRegionServer(countryCode string) string
GetRegionServer returns a registered server handling requests for a specific region, or an empty string if none is defined.
func (*RegionRouter) RegionHandler ¶
func (reg *RegionRouter) RegionHandler() func(h http.Handler) http.Handler
Handler provides a Region Routing middleware for enabling regional server redirection. Example:
import ( "github.com/adaptant-labs/go-region-router/middleware" "github.com/gorilla/mux" "net/http" ) func main() { m := mux.NewRouter() r := region.NewRegionRouter() r.SetRegionServer("de", "https://de.api.xxx.com") r.SetRegionServer("at", "https://at.api.xxx.com") // Apply the region routing middleware with default settings http.ListenAndServer(":8080", r.RegionHandler()(m)) }
func (*RegionRouter) ResetRegionServers ¶
func (reg *RegionRouter) ResetRegionServers()
func (RegionRouter) ServeHTTP ¶
func (reg RegionRouter) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*RegionRouter) SetDefaultServer ¶
func (reg *RegionRouter) SetDefaultServer(server string) bool
SetDefaultServer sets the server to pass on to if no region matching is possible
func (*RegionRouter) SetRegionServer ¶
func (reg *RegionRouter) SetRegionServer(countryCode string, server string) bool
SetRegionServer defines a registered server for handling requests in a specific region. It returns a boolean value indicating whether the registration of the server for the designated country code succeeded or not - this may fail in case where a server has already been defined.
func (*RegionRouter) UpdateRegionRoutesFromConsul ¶
func (reg *RegionRouter) UpdateRegionRoutesFromConsul(config *api.ConsulConfiguration) error
func (*RegionRouter) UpdateRegionRoutesFromServerDefinitions ¶
func (reg *RegionRouter) UpdateRegionRoutesFromServerDefinitions(servers []*api.ServerDefinition) error