region

package
v0.0.0-...-fe29b7c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountryCodeHandler

func CountryCodeHandler(next http.Handler) http.Handler

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL