package WorstCaptcha import ( "github.com/gorilla/mux" "net/http" "encoding/json" ) var GlobalDb Db type Route struct { Name string Method string Pattern string Handler http.HandlerFunc } type Routes []Route func NewRouter(db Db) *mux.Router { router := mux.NewRouter().StrictSlash(true) GlobalDb = db for _, route := range routes { router. Methods(route.Method). Path(route.Pattern). Name(route.Name). Handler(route.Handler) } return router } var routes = Routes{ Route{ Name: "RequestCaptcha", Method: "GET", Pattern: "/v1/captcha/", Handler: RequestCaptcha, }, } type ResponseCaptcha struct { ImageLocation string `json:"image_location"` ResponseLocation string `json:"response_location"` } func RequestCaptcha(w http.ResponseWriter, r *http.Request) { response := ResponseCaptcha{"aoeu", "asdf"} // fmt.Println(GlobalDb) w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(response) }