本文整理汇总了Golang中github.com/carbocation/interpose.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
middle := interpose.New()
router := mux.NewRouter()
router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, `<h1>Welcome to the public page!</h1><p><a href="/protected/">Rabbit hole</a></p>`)
})
middle.UseHandler(router)
// Now we will define a sub-router that uses the BasicAuth middleware
// When you call any url starting with the path /protected, you will need to authenticate
protectedRouter := mux.NewRouter().Methods("GET").PathPrefix("/protected").Subrouter()
protectedRouter.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "Welcome to the protected page!")
})
// Define middleware that pertains to the part of the site protected behind HTTP Auth
// and add the protected router to the protected middleware
protectedMiddlew := interpose.New()
protectedMiddlew.Use(middleware.BasicAuth("john", "doe"))
protectedMiddlew.UseHandler(protectedRouter)
// Add the protected middleware and its router to the main router
router.Methods("GET").PathPrefix("/protected").Handler(protectedMiddlew)
http.ListenAndServe(":3001", middle)
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:28,代码来源:main.go
示例2: main
func main() {
middle := interpose.New()
// First call middleware that may manipulate HTTP headers, since
// they must be called before the HTTP body is manipulated
// Using Gorilla framework's combined logger
middle.Use(middleware.GorillaLog())
//Using Negroni's Gzip functionality
middle.Use(middleware.NegroniGzip(gzip.DefaultCompression))
// Now call middleware that can manipulate the HTTP body
// Define the router. Note that we can add the router to our
// middleware stack before we define the routes, if we want.
router := mux.NewRouter()
middle.UseHandler(router)
// Configure our router
router.HandleFunc("/{user}", func(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "Welcome to the home page, %s!", mux.Vars(req)["user"])
})
// Define middleware that will apply to only some routes
greenMiddle := interpose.New()
// Tell the main router to send /green requests to our subrouter.
// Again, we can do this before defining the full middleware stack.
router.Methods("GET").PathPrefix("/green").Handler(greenMiddle)
// Within the secondary middleware, just like above, we want to call anything that
// will modify the HTTP headers before anything that will modify the body
greenMiddle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
rw.Header().Set("X-Favorite-Color", "green")
}))
// Finally, define a sub-router based on our love of the color green
// When you call any url such as http://localhost:3001/green/man , you will
// also see an HTTP header sent called X-Favorite-Color with value "green"
greenRouter := mux.NewRouter().Methods("GET").PathPrefix("/green").Subrouter() //Headers("Accept", "application/json")
greenMiddle.UseHandler(greenRouter)
greenRouter.HandleFunc("/{user}", func(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "Welcome to the home page, green %s!", mux.Vars(req)["user"])
})
http.ListenAndServe(":3001", middle)
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:49,代码来源:example1.go
示例3: ServeHTTP
func (a *AgentCommand) ServeHTTP() {
r := mux.NewRouter().StrictSlash(true)
a.apiRoutes(r)
a.dashboardRoutes(r)
middle := interpose.New()
middle.Use(metaMiddleware(a.config.NodeName))
middle.UseHandler(r)
r.Handle("/debug/vars", http.DefaultServeMux)
r.PathPrefix("/dashboard").Handler(
http.StripPrefix("/dashboard", http.FileServer(
http.Dir(filepath.Join(a.config.UIDir, "static")))))
r.PathPrefix("/").Handler(http.RedirectHandler("/dashboard", 301))
srv := &http.Server{Addr: a.config.HTTPAddr, Handler: middle}
log.WithFields(logrus.Fields{
"address": a.config.HTTPAddr,
}).Info("api: Running HTTP server")
certFile := "" //config.GetString("certFile")
keyFile := "" //config.GetString("keyFile")
if certFile != "" && keyFile != "" {
go srv.ListenAndServeTLS(certFile, keyFile)
} else {
go srv.ListenAndServe()
}
}
开发者ID:intfrr,项目名称:dkron,代码行数:31,代码来源:api.go
示例4: main
func main() {
middle := interpose.New()
// Create a middleware that yields a global counter that increments until
// the server is shut down. Note that this would actually require a mutex
// or a channel to be safe for concurrent use. Therefore, this example is
// unsafe.
middle.Use(context.ClearHandler)
middle.Use(func() func(http.Handler) http.Handler {
c := 0
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
c++
context.Set(req, CountKey, c)
next.ServeHTTP(w, req)
})
}
}())
// Apply the router.
router := mux.NewRouter()
router.HandleFunc("/test/{user}", func(w http.ResponseWriter, req *http.Request) {
c, ok := context.GetOk(req, CountKey)
if !ok {
fmt.Println("Context not ok")
}
fmt.Fprintf(w, "Hi %s, this is visit #%d to the site since the server was last rebooted.", mux.Vars(req)["user"], c)
})
middle.UseHandler(router)
http.ListenAndServe(":3001", middle)
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:35,代码来源:ascendinginteger.go
示例5: main
func main() {
// middleware
middle := interpose.New()
middle.Use(adaptors.FromNegroni(cors.New(cors.Options{
// CORS
AllowedOrigins: []string{"*"},
})))
// router
router := pat.New()
middle.UseHandler(router)
router.Get("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
url := r.URL.Query().Get("url")
if url != "" {
encoded := imgbase64.FromRemote(url)
fmt.Fprint(w, encoded)
} else {
fmt.Fprint(w, "/?url=<your-image-url> returns the base64 data-URI of that image.")
}
}))
// listen
port := os.Getenv("PORT")
if port == "" {
port = "5000"
}
log.Print("listening...")
http.ListenAndServe(":"+port, middle)
}
开发者ID:fiatjaf,项目名称:imagebase64er.alhur.es,代码行数:31,代码来源:web.go
示例6: ServeHTTP
func (a *AgentCommand) ServeHTTP() {
r := mux.NewRouter().StrictSlash(true)
a.apiRoutes(r)
a.dashboardRoutes(r)
middle := interpose.New()
middle.UseHandler(r)
// Path of static files must be last!
r.PathPrefix("/").Handler(http.FileServer(http.Dir("static")))
srv := &http.Server{Addr: a.config.HTTPAddr, Handler: middle}
log.Infof("Running HTTP server on %s", a.config.HTTPAddr)
certFile := "" //config.GetString("certFile")
keyFile := "" //config.GetString("keyFile")
if certFile != "" && keyFile != "" {
srv.ListenAndServeTLS(certFile, keyFile)
} else {
srv.ListenAndServe()
}
log.Debug("Exiting HTTP server")
}
开发者ID:shenjinxi,项目名称:dkron,代码行数:25,代码来源:api.go
示例7: setupMuxHandlers
func (me *endPoint) setupMuxHandlers(mux *mux.Router) {
fn := handleIncoming(me)
m := interpose.New()
for i, _ := range me.modules {
m.Use(me.modules[i])
//fmt.Println("using module:", me.modules[i], reflect.TypeOf(me.modules[i]))
}
m.UseHandler(http.HandlerFunc(fn))
if me.info.Version == "*" {
mux.Handle(me.muxUrl, m).Methods(me.httpMethod)
} else {
urlWithVersion := cleanUrl(me.info.Prefix, "v"+me.info.Version, me.muxUrl)
urlWithoutVersion := cleanUrl(me.info.Prefix, me.muxUrl)
// versioned url
mux.Handle(urlWithVersion, m).Methods(me.httpMethod)
// content type (style1)
header1 := fmt.Sprintf("application/%s-v%s+json", me.info.Vendor, me.info.Version)
mux.Handle(urlWithoutVersion, m).Methods(me.httpMethod).Headers("Accept", header1)
// content type (style2)
header2 := fmt.Sprintf("application/%s+json;version=%s", me.info.Vendor, me.info.Version)
mux.Handle(urlWithoutVersion, m).Methods(me.httpMethod).Headers("Accept", header2)
}
}
开发者ID:tolexo,项目名称:aqua,代码行数:29,代码来源:endpoint.go
示例8: New
func New() *WharfMaster {
middle := interpose.New()
// Logger
middle.Use(middleware.GorillaLog())
// Header modification example
middle.Use(func(next http.Handler) http.Handler {
return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
rw.Header().Set("X-Server-Name", "The Germinator")
next.ServeHTTP(rw, req)
})
})
// Inject router
router := mux.NewRouter()
middle.UseHandler(router)
// Setup Routes
router.HandleFunc("/", func(rw http.ResponseWriter, req *http.Request) {
fmt.Fprintf(rw, "Ther once was a happy roach, he liked to do roachy stuff")
})
//router.HandleFunc("/v1/entities", ctrl.EntityCreate).Methods("POST")
//router.HandleFunc("/v1/entities", ctrl.EntityList).Methods("GET")
return &WharfMaster{Middle: middle}
}
开发者ID:telamon,项目名称:wharfmaster,代码行数:25,代码来源:wharfmaster.go
示例9: middlewares
// TODO: use different middleware library ?
func (app *Application) middlewares(cfg *libcfg.Cfg) (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.Log())
middle.UseHandler(app.mux(cfg))
return middle, nil
}
开发者ID:mateuszdyminski,项目名称:logag,代码行数:8,代码来源:main.go
示例10: Middlewares
func (chillax *Chillax) Middlewares() (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.SetStorages(chillax.storages))
middle.UseHandler(chillax.Mux())
return middle, nil
}
开发者ID:sandeepone,项目名称:chillax,代码行数:8,代码来源:app.go
示例11: middlewareStruct
func (a *Application) middlewareStruct() (*interpose.Middleware, error) {
mw := interpose.New()
mw.Use(Nosurf())
mw.UseHandler(a.router())
return mw, nil
}
开发者ID:HeWhoWas,项目名称:mokey,代码行数:8,代码来源:server.go
示例12: MiddlewareStruct
func (app *Application) MiddlewareStruct() (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.SetCookieStore(app.cookieStore))
middle.UseHandler(app.mux())
return middle, nil
}
开发者ID:tjyang,项目名称:go-bootstrap,代码行数:8,代码来源:application.go
示例13: Test_BasicAuthFunc
func Test_BasicAuthFunc(t *testing.T) {
for auth, valid := range map[string]bool{
"foo:spam": true,
"bar:spam": true,
"foo:eggs": false,
"bar:eggs": false,
"baz:spam": false,
"foo:spam:extra": false,
"dummy:": false,
"dummy": false,
"": false,
} {
recorder := httptest.NewRecorder()
encoded := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
i := interpose.New()
i.Use(BasicAuthFunc(func(username, password string, _ *http.Request) bool {
return (username == "foo" || username == "bar") && password == "spam"
}))
i.Use(func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
w.Write([]byte("hello"))
next.ServeHTTP(w, req)
})
})
r, _ := http.NewRequest("GET", "foo", nil)
i.ServeHTTP(recorder, r)
if recorder.Code != 401 {
t.Error("Response not 401, params:", auth)
}
if recorder.Body.String() == "hello" {
t.Error("Auth block failed, params:", auth)
}
recorder = httptest.NewRecorder()
r.Header.Set("Authorization", encoded)
i.ServeHTTP(recorder, r)
if valid && recorder.Code == 401 {
t.Error("Response is 401, params:", auth)
}
if !valid && recorder.Code != 401 {
t.Error("Response not 401, params:", auth)
}
if valid && recorder.Body.String() != "hello" {
t.Error("Auth failed, got: ", recorder.Body.String(), "params:", auth)
}
if !valid && recorder.Body.String() == "hello" {
t.Error("Auth block failed, params:", auth)
}
}
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:58,代码来源:basicAuth_test.go
示例14: MiddlewareStruct
func (app *Application) MiddlewareStruct() (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.SetMcRouterConfigFile(app.Settings["MCROUTER_CONFIG_FILE"]))
middle.Use(middlewares.SetStorage(app.Storage))
middle.Use(middlewares.SetReadOnly(app.IsReadOnly()))
middle.UseHandler(app.mux())
return middle, nil
}
开发者ID:didip,项目名称:mcrouter-hub,代码行数:9,代码来源:application.go
示例15: middlewareStruct
func (app *Application) middlewareStruct(logWriter io.Writer) (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.SetDB(app.db))
middle.Use(middlewares.SetCookieStore(app.cookieStore))
middle.Use(middlewares.SetupLogger(logWriter))
middle.UseHandler(app.mux())
return middle, nil
}
开发者ID:topher200,项目名称:forty-thieves,代码行数:10,代码来源:main.go
示例16: MiddlewareStruct
func (app *Application) MiddlewareStruct() (*interpose.Middleware, error) {
middle := interpose.New()
middle.Use(middlewares.SetAddr(app.Addr))
middle.Use(middlewares.SetDB(app.db))
middle.Use(middlewares.SetCookieStore(app.cookieStore))
middle.Use(middlewares.SetWSTraffickers(app.WSTraffickers))
middle.UseHandler(app.mux())
return middle, nil
}
开发者ID:simudream,项目名称:resourced-master,代码行数:11,代码来源:application.go
示例17: main
func main() {
// Limit to 5 requests globally.
middle := interpose.New()
middle.Use(throttler.Limit(2))
router := mux.NewRouter()
router.HandleFunc("/", handler)
middle.UseHandler(router)
fmt.Printf("Try running the following commands (in different terminal):\n\n")
fmt.Printf("for i in `seq 1 10`; do (curl 127.0.0.1:8000/ &); done\n\n")
http.ListenAndServe(":8000", middle)
}
开发者ID:DisruptiveMind,项目名称:throttler,代码行数:14,代码来源:main.go
示例18: main
func main() {
middle := interpose.New()
// Invoke the Gorilla framework's combined logger
middle.Use(middleware.GorillaLog())
// Create a router to serve HTTP content at two paths
// and tell our middleware about the router
router := mux.NewRouter()
middle.UseHandler(router)
router.PathPrefix("/green").Subrouter().Handle("/{name}", Green(http.HandlerFunc(welcomeHandler)))
router.Handle("/{name}", http.HandlerFunc(welcomeHandler))
http.ListenAndServe(":3001", middle)
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:16,代码来源:singlepath.go
示例19: BuildServer
// BuildServer applies context-less middlewares. Ones with context will require some more work
func BuildServer(middlewares []http.Handler, endpoints []Endpoint) http.Handler {
handlerChain := interpose.New()
for _, middle := range middlewares {
handlerChain.UseHandler(middle)
}
router := mux.NewRouter()
for _, endpoint := range endpoints {
router.Methods(endpoint.GetMethod()).
Path(endpoint.GetRoute()).
HandlerFunc(endpoint.GetHandler().ServeHTTP)
}
handlerChain.UseHandler(router)
return handlerChain
}
开发者ID:MustWin,项目名称:go-base,代码行数:17,代码来源:server.go
示例20: main
func main() {
model.Init()
middle := interpose.New()
middle.Use(middleware.NegroniGzip(gzip.DefaultCompression))
r := mux.NewRouter()
middle.UseHandler(r)
r.HandleFunc("/", page.ProfileHandler)
r.HandleFunc("/profile", page.ProfileHandler)
r.HandleFunc("/profile/{period}", page.ProfileHandler)
r.HandleFunc("/badges", func(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "/progress", 302)
})
r.HandleFunc("/progress", page.ProgressHandler)
r.HandleFunc("/profiles", page.ProfilesHandler)
r.HandleFunc("/admin/process", requireAdmin(page.ProcessIndexHandler))
r.HandleFunc("/admin/process/{owner}", requireAdmin(page.ProcessListHandler))
r.HandleFunc("/admin/process/{owner}/{faulty}/{previous}", requireAdmin(page.ProcessQueueHandler))
r.HandleFunc("/admin/process/{owner}/{faulty}/{previous}/run", requireAdmin(page.ProcessRunHandler))
r.HandleFunc("/signin", LoginHandler)
r.HandleFunc("/logout", LogoutHandle)
r.HandleFunc("/signup", page.SignupHandler).Methods("POST")
r.HandleFunc("/reset_password/{token:[a-f0-9]+}", page.ResetPassViewHandler).Methods("GET")
r.HandleFunc("/reset_password/{token:[a-f0-9]+}", page.ResetPassHandler).Methods("POST")
r.HandleFunc("/reset_password", page.ResetPassMailHandler).Methods("POST")
r.HandleFunc("/gplus", page.GPlusHandler)
r.HandleFunc("/upload", page.UploadViewHandler).Methods("GET")
r.HandleFunc("/upload", page.UploadHandler).Methods("POST")
r.PathPrefix("/secret_cache/").Handler(http.StripPrefix("/secret_cache/", http.FileServer(http.Dir("cache"))))
r.PathPrefix("/").Handler(http.FileServer(http.Dir("static")))
http.Handle("/", middle)
go queue.ProcessQueue()
queue.Queue <- true
log.Fatal(http.ListenAndServeTLS(conf.Config.Address, conf.Config.Cert, conf.Config.Key, nil))
}
开发者ID:haste,项目名称:tiers,代码行数:46,代码来源:tiers.go
注:本文中的github.com/carbocation/interpose.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论