本文整理汇总了Golang中github.com/go-martini/martini.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Start
func Start() {
r := martini.NewRouter()
m := martini.New()
m.Use(martini.Logger())
m.Use(martini.Recovery())
m.MapTo(r, (*martini.Routes)(nil))
m.Action(r.Handle)
// Gitchain API
r.Post("/rpc", jsonRpcService().ServeHTTP)
r.Get("/info", info)
// Git Server
r.Post("^(?P<path>.*)/git-upload-pack$", func(params martini.Params, req *http.Request) string {
body, _ := ioutil.ReadAll(req.Body)
fmt.Println(req, body)
return params["path"]
})
r.Post("^(?P<path>.*)/git-receive-pack$", func(params martini.Params, req *http.Request) string {
fmt.Println(req)
return params["path"]
})
r.Get("^(?P<path>.*)/info/refs$", func(params martini.Params, req *http.Request) (int, string) {
body, _ := ioutil.ReadAll(req.Body)
fmt.Println(req, body)
return 404, params["path"]
})
log.Fatal(http.ListenAndServe(fmt.Sprintf("127.0.0.1:%d", env.Port), m))
}
开发者ID:josephyzhou,项目名称:gitchain,代码行数:34,代码来源:http.go
示例2: init
func init() {
m = martini.New()
//setup middleware
m.Use(martini.Recovery())
m.Use(martini.Logger())
m.Use(martini.Static("public"))
}
开发者ID:heltonmarx,项目名称:thermistor,代码行数:7,代码来源:main.go
示例3: main
func main() {
conf.Env().Flag()
r := martini.NewRouter()
m := martini.New()
if conf.UBool("debug") {
m.Use(martini.Logger())
}
m.MapTo(r, (*martini.Routes)(nil))
m.Action(r.Handle)
session, err := mgo.Dial(conf.UString("mongo.uri"))
if err != nil {
panic(err)
}
session.SetMode(mgo.Monotonic, true)
db := session.DB(conf.UString("mongodb.database"))
logger := log.New(os.Stdout, "\x1B[36m[cdn] >>\x1B[39m ", 0)
m.Map(logger)
m.Map(db)
r.Group("", cdn.Cdn(cdn.Config{
MaxSize: conf.UInt("maxSize"),
ShowInfo: conf.UBool("showInfo"),
TailOnly: conf.UBool("tailOnly"),
}))
logger.Println("Server started at :" + conf.UString("port", "5000"))
_err := http.ListenAndServe(":"+conf.UString("port", "5000"), m)
if _err != nil {
logger.Printf("\x1B[31mServer exit with error: %s\x1B[39m\n", _err)
os.Exit(1)
}
}
开发者ID:gitter-badger,项目名称:cdn-1,代码行数:34,代码来源:cdn.go
示例4: Test_GitHubAuth
func Test_GitHubAuth(t *testing.T) {
recorder := httptest.NewRecorder()
secret := "secret"
signature := "sha1=5d61605c3feea9799210ddcb71307d4ba264225f"
body := "{}"
m := martini.New()
m.Use(GitHub(secret))
m.Use(func(res http.ResponseWriter, req *http.Request) {
res.Write([]byte("hello"))
})
r, _ := http.NewRequest("GET", "foo", bytes.NewReader([]byte(body)))
r.Header.Set("X-Hub-Signature", signature)
m.ServeHTTP(recorder, r)
if recorder.Code == 401 {
t.Error("Response is 401")
}
if recorder.Body.String() != "hello" {
t.Error("Auth failed, got: ", recorder.Body.String())
}
}
开发者ID:rafecolton,项目名称:vauth,代码行数:25,代码来源:github_test.go
示例5: TestRestErrorResult
func TestRestErrorResult(t *testing.T) {
m := martini.New()
recorder := httptest.NewRecorder()
m.Use(rest.RestPostHandler())
m.Use(func(c martini.Context, res http.ResponseWriter, req *http.Request) {
err := &rest.RestError{-1000, "12"}
c.MapTo(err, (*error)(nil))
})
m.ServeHTTP(recorder, (*http.Request)(nil))
if recorder.Code != http.StatusOK {
t.Error("failed status")
return
}
if recorder.Header().Get("Content-Type") != "application/json; charset=utf-8" {
t.Error("failed content type")
return
}
var returnObj rest.RestReturnObj
if err := json.Unmarshal(recorder.Body.Bytes(), &returnObj); err != nil {
t.Error("json decode failed")
return
}
if returnObj.ErrorCode != -1000 {
t.Error("error code failed")
return
}
}
开发者ID:xozrc,项目名称:xo,代码行数:35,代码来源:rest_test.go
示例6: HandlerFromMartini
func HandlerFromMartini(handler martini.Handler) http.Handler {
m := martini.New()
m.Use(handler)
return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
m.ServeHTTP(rw, req)
})
}
开发者ID:mvpmvh,项目名称:interpose,代码行数:7,代码来源:martini.go
示例7: New
// create new helper, this object will be used for globar service for martini middleware
func New() *MartiniHelper {
this := &MartiniHelper{inject.New()}
retHandler := martini.New().Get(reflect.TypeOf(martini.ReturnHandler(nil))).Interface()
// retHandler := martini.defaultReturnHandler()
this.Map(retHandler)
return this
}
开发者ID:win-t,项目名称:karambie,代码行数:8,代码来源:wrapper.go
示例8: BenchmarkCodegangstaMartini_Middleware
func BenchmarkCodegangstaMartini_Middleware(b *testing.B) {
martiniMiddleware := func(rw http.ResponseWriter, r *http.Request, c martini.Context) {
c.Next()
}
r := martini.NewRouter()
m := martini.New()
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Action(r.Handle)
r.Get("/action", helloHandler)
rw, req := testRequest("GET", "/action")
b.ResetTimer()
for i := 0; i < b.N; i++ {
m.ServeHTTP(rw, req)
if rw.Code != 200 {
panic("no good")
}
}
}
开发者ID:rexk,项目名称:golang-mux-benchmark,代码行数:27,代码来源:mux_bench_test.go
示例9: BenchmarkCodegangstaNegroni_Composite
func BenchmarkCodegangstaNegroni_Composite(b *testing.B) {
namespaces, resources, requests := resourceSetup(10)
martiniMiddleware := func(rw http.ResponseWriter, r *http.Request, c martini.Context) {
c.Next()
}
handler := func(rw http.ResponseWriter, r *http.Request, c *martiniContext) {
fmt.Fprintf(rw, c.MyField)
}
r := martini.NewRouter()
m := martini.New()
m.Use(func(rw http.ResponseWriter, r *http.Request, c martini.Context) {
c.Map(&martiniContext{MyField: r.URL.Path})
c.Next()
})
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Use(martiniMiddleware)
m.Action(r.Handle)
for _, ns := range namespaces {
for _, res := range resources {
r.Get("/"+ns+"/"+res, handler)
r.Post("/"+ns+"/"+res, handler)
r.Get("/"+ns+"/"+res+"/:id", handler)
r.Put("/"+ns+"/"+res+"/:id", handler)
r.Delete("/"+ns+"/"+res+"/:id", handler)
}
}
benchmarkRoutes(b, m, requests)
}
开发者ID:rexk,项目名称:golang-mux-benchmark,代码行数:35,代码来源:mux_bench_test.go
示例10: Test_BasicAuth
func Test_BasicAuth(t *testing.T) {
recorder := httptest.NewRecorder()
auth := "Basic " + base64.StdEncoding.EncodeToString([]byte("foo:bar"))
m := martini.New()
m.Use(Basic("foo", "bar"))
m.Use(func(res http.ResponseWriter, req *http.Request) {
res.Write([]byte("hello"))
})
r, _ := http.NewRequest("GET", "foo", nil)
m.ServeHTTP(recorder, r)
if recorder.Code != 401 {
t.Error("Response not 401")
}
if recorder.Body.String() == "hello" {
t.Error("Auth block failed")
}
recorder = httptest.NewRecorder()
r.Header.Set("Authorization", auth)
m.ServeHTTP(recorder, r)
if recorder.Code == 401 {
t.Error("Response is 401")
}
if recorder.Body.String() != "hello" {
t.Error("Auth failed, got: ", recorder.Body.String())
}
}
开发者ID:joshuarubin,项目名称:goscribe,代码行数:35,代码来源:basic_test.go
示例11: init
func init() {
m = martini.New()
// I could probably just use martini.Classic() instead of configure these manually
// Static files
m.Use(martini.Static(`public`))
// Setup middleware
m.Use(martini.Recovery())
m.Use(martini.Logger())
// m.Use(auth.Basic(AuthToken, ""))
m.Use(MapEncoder)
// Setup routes
r := martini.NewRouter()
r.Get(`/albums`, server.GetAlbums)
r.Get(`/albums/:id`, server.GetAlbum)
r.Post(`/albums`, server.AddAlbum)
r.Put(`/albums/:id`, server.UpdateAlbum)
r.Delete(`/albums/:id`, server.DeleteAlbum)
// Inject database
m.MapTo(server.DBInstance, (*server.DB)(nil))
// Add the router action
m.Action(r.Handle)
}
开发者ID:ivanbportugal,项目名称:go-albums,代码行数:26,代码来源:main.go
示例12: main
// How to use Martini properly with Defer Panic client library
func main() {
dps := deferstats.NewClient("z57z3xsEfpqxpr0dSte0auTBItWBYa1c")
go dps.CaptureStats()
m := martini.New()
r := martini.NewRouter()
r.Get("/panic", func() string {
panic("There is no need for panic")
return "Hello world!"
})
r.Get("/slow", func() string {
time.Sleep(5 * time.Second)
return "Hello world!"
})
r.Get("/fast", func() string {
return "Hello world!"
})
m.MapTo(r, (*martini.Routes)(nil))
m.Action(r.Handle)
m.Use(middleware.Wrapper(dps))
m.RunOnAddr(":3000")
}
开发者ID:deferpanic,项目名称:dpmartini,代码行数:28,代码来源:example.go
示例13: init
func init() {
m = martini.New()
//set up middleware
m.Use(martini.Recovery())
m.Use(martini.Logger())
m.Use(auth.Basic(AuthToken, ""))
m.Use(MapEncoder)
// set up routes
r := martini.NewRouter()
r.Get(`/albums`, GetAlbums)
r.Get(`/albums/:id`, GetAlbum)
r.Post(`/albums`, AddAlbum)
r.Put(`/albums/:id`, UpdateAlbum)
r.Delete(`/albums/:id`, DeleteAlbum)
// inject database
// maps db package variable to the DB interface defined in data.go
// The syntax for the second parameter may seem weird,
// it is just converting nil to the pointer-to-DB-interface type,
// because all the injector needs is the type to map the first parameter to.
m.MapTo(db, (*DB)(nil))
// add route action
// adds the router’s configuration to the list of handlers that Martini will call.
m.Action(r.Handle)
}
开发者ID:pyanfield,项目名称:martini_demos,代码行数:28,代码来源:server.go
示例14: Test_ResponseWriter_Hijack
func Test_ResponseWriter_Hijack(t *testing.T) {
hijackable := newHijackableResponse()
m := martini.New()
m.Use(All())
m.Use(func(rw http.ResponseWriter) {
if hj, ok := rw.(http.Hijacker); !ok {
t.Error("Unable to hijack")
} else {
hj.Hijack()
}
})
r, err := http.NewRequest("GET", "/", nil)
if err != nil {
t.Error(err)
}
r.Header.Set(HeaderAcceptEncoding, "gzip")
m.ServeHTTP(hijackable, r)
if !hijackable.Hijacked {
t.Error("Hijack was not called")
}
}
开发者ID:howeyc,项目名称:obd2-data-viewer,代码行数:25,代码来源:gzip_test.go
示例15: startMartini
func startMartini() {
mux := martini.NewRouter()
mux.Get("/hello", martiniHandlerWrite)
martini := martini.New()
martini.Action(mux.Handle)
http.ListenAndServe(":"+strconv.Itoa(port), martini)
}
开发者ID:cokeboL,项目名称:go-web-framework-benchmark,代码行数:7,代码来源:server.go
示例16: ListenAndServe
// ListenAndServe start the server
func ListenAndServe(addr string, core core.Core, fe fs.FileExplorer) {
log.Infof("REST listening at: http://%v", core.GetAddr())
clientHandlers := clientAPI.NewHandler(core)
mesosHandlers := mesosAPI.NewHandler(core)
fsHandlers := fsAPI.NewHandler(fe)
r := createRouter(core, clientHandlers, mesosHandlers, fsHandlers)
m := martini.New()
m.Use(cors.Allow(&cors.Options{
AllowOrigins: []string{"*"},
AllowMethods: []string{"POST", "GET", "PUT", "DELETE"},
AllowHeaders: []string{"Origin", "x-requested-with", "Content-Type", "Content-Range", "Content-Disposition", "Content-Description"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: false,
}))
m.Use(logger())
m.Use(recovery())
m.Use(martini.Static("static"))
m.Use(martini.Static("temp", martini.StaticOptions{
Prefix: "/context/",
}))
m.Use(martini.Static("executor", martini.StaticOptions{
Prefix: "/executor/",
}))
m.Action(r.Handle)
go m.RunOnAddr(addr)
}
开发者ID:icsnju,项目名称:apt-mesos,代码行数:28,代码来源:server.go
示例17: main
/*
Application entry point
*/
func main() {
m := martini.New()
//Set middleware
m.Use(martini.Recovery())
m.Use(martini.Logger())
m.Use(cors.Allow(&cors.Options{
AllowOrigins: []string{"*"},
AllowMethods: []string{"OPTIONS", "HEAD", "POST", "GET", "PUT"},
AllowHeaders: []string{"Authorization", "Content-Type"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}))
//Create the router
r := martini.NewRouter()
//Options matches all and sends okay
r.Options(".*", func() (int, string) {
return 200, "ok"
})
api.SetupTodoRoutes(r)
api.SetupCommentRoutes(r)
mscore.StartServer(m, r)
fmt.Println("Started NSQ Test service")
}
开发者ID:newsquid,项目名称:newsquidtest,代码行数:32,代码来源:main.go
示例18: TestKeystoneValidUncachedToken
func TestKeystoneValidUncachedToken(t *testing.T) {
token := "token"
// Set up mock token validator - one auth attempt is expected in this test
testTokenValidator := new(MockTokenValidator)
testTokenValidator.On("CheckToken", token).Return(true)
// Set up mock cache - the middleware should try to get and set the token
testCache := new(MockCache)
testCache.On("Get", token).Return("", errors.New("test error"))
testCache.On("Set", token, "authorized").Return(nil)
// Dummy martini
m := martini.New()
m.Use(Keystone(testTokenValidator, testCache))
m.Use(func(res http.ResponseWriter, req *http.Request, token Token) {
res.Write([]byte(token))
})
// Send request to martini
recorder := httptest.NewRecorder()
r, _ := http.NewRequest("GET", "foo", nil)
r.Header.Add("X-Auth-Token", token)
m.ServeHTTP(recorder, r)
// Assert mock expectations
testTokenValidator.AssertExpectations(t)
testCache.AssertExpectations(t)
// Assert http response expectations
assert.Equal(t, recorder.Code, 200, "Expected: 200")
assert.Equal(t, recorder.Body.String(), token, "Expected: "+token)
}
开发者ID:Kuwagata,项目名称:martini-keystone-auth,代码行数:33,代码来源:middleware_test.go
示例19: launchFrontend
func launchFrontend() {
m := martini.New()
m.Use(martini.Static("static"))
m.Use(martini.Recovery())
m.Use(martini.Logger())
r := martini.NewRouter()
r.Get("/", indexHandler)
r.Get("/following", followHandler)
r.Get("/stat", statHandler)
r.Get("/channel/:streamer", channelHandler)
r.Get("/add/:streamer", addHandler)
r.Get("/del/:streamer", delHandler)
r.Get("/api/stat/:streamer", apiStat)
r.Get("/api/channel/:streamer", apiStat)
r.Get("/api/following", apiFollowing)
db := getDB()
redis := getRedis()
m.Map(db)
m.Map(redis)
m.Action(r.Handle)
log.Print("Started Web Server")
m.Run()
}
开发者ID:grsakea,项目名称:kappastat,代码行数:25,代码来源:web.go
示例20: main
func main() {
username, password := waitForPostgres(serviceName)
db, err := postgres.Open(serviceName, fmt.Sprintf("dbname=postgres user=%s password=%s", username, password))
if err != nil {
log.Fatal(err)
}
r := martini.NewRouter()
m := martini.New()
m.Use(martini.Logger())
m.Use(martini.Recovery())
m.Use(render.Renderer())
m.Action(r.Handle)
m.Map(db)
r.Post("/databases", createDatabase)
r.Get("/ping", ping)
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
addr := ":" + port
if err := discoverd.Register(serviceName+"-api", addr); err != nil {
log.Fatal(err)
}
log.Fatal(http.ListenAndServe(addr, m))
}
开发者ID:kelsieflynn,项目名称:flynn-postgres,代码行数:30,代码来源:server.go
注:本文中的github.com/go-martini/martini.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论