Browse Source

unify the http method conventions

tags/v0.9.0
jimzhan 9 years ago
parent
commit
be698a784d
8 changed files with 48 additions and 48 deletions
  1. +3
    -3
      README.md
  2. +5
    -5
      example/main.go
  3. +1
    -1
      middleware/cache_test.go
  4. +1
    -1
      middleware/compress_test.go
  5. +1
    -1
      middleware/header_test.go
  6. +1
    -1
      middleware/static_test.go
  7. +15
    -15
      server.go
  8. +21
    -21
      server_test.go

+ 3
- 3
README.md View File



func main() { func main() {
app := rex.New() app := rex.New()
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello World") io.WriteString(w, "Hello World")
}) })
app.Run() app.Run()
env.Set("PORT", 9394) env.Set("PORT", 9394)


app := rex.New() app := rex.New()
app.GET("/", index)
app.Get("/", index)
app.Run() app.Run()
} }
``` ```


```go ```go
app := rex.New() app := rex.New()
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "index page") io.WriteString(w, "index page")
}) })



+ 5
- 5
example/main.go View File

func main() { func main() {
app := rex.New() app := rex.New()
app.Use(livereload.Middleware) app.Use(livereload.Middleware)
app.GET("/", Index)
app.Get("/", Index)


api := app.Group("/v1/") api := app.Group("/v1/")
api.Use(JSON) api.Use(JSON)
api.GET("/", fetch)
api.POST("/", create)
api.PUT("/", update)
api.DELETE("/", remove)
api.Get("/", fetch)
api.Post("/", create)
api.Put("/", update)
api.Delete("/", remove)


app.Run() app.Run()
} }

+ 1
- 1
middleware/cache_test.go View File

func TestNoCache(t *testing.T) { func TestNoCache(t *testing.T) {
app := rex.New() app := rex.New()
app.Use(NoCache) app.Use(NoCache)
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "app") io.WriteString(w, "app")
}) })



+ 1
- 1
middleware/compress_test.go View File



app := rex.New() app := rex.New()
app.Use(Compress) app.Use(Compress)
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "app") io.WriteString(w, "app")
}) })



+ 1
- 1
middleware/header_test.go View File



app := rex.New() app := rex.New()
app.Use(Header(values)) app.Use(Header(values))
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "app") io.WriteString(w, "app")
}) })



+ 1
- 1
middleware/static_test.go View File

app := rex.New() app := rex.New()
app.Use(Static(tempdir)) app.Use(Static(tempdir))
prefix := path.Join("/", path.Base(path.Dir(filename))) prefix := path.Join("/", path.Base(path.Dir(filename)))
app.GET(prefix, func(w http.ResponseWriter, r *http.Request) {
app.Get(prefix, func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "app") io.WriteString(w, "app")
}) })



+ 15
- 15
server.go View File

self.middleware.stack = append(self.middleware.stack, module) self.middleware.stack = append(self.middleware.stack, module)
} }


// GET is a shortcut for mux.HandleFunc(pattern, handler).Methods("GET"),
// Get is a shortcut for mux.HandleFunc(pattern, handler).Methods("GET"),
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) GET(pattern string, handler interface{}) {
func (self *server) Get(pattern string, handler interface{}) {
self.register(pattern, handler, "GET") self.register(pattern, handler, "GET")
} }


// HEAD is a shortcut for mux.HandleFunc(pattern, handler).Methods("HEAD")
// Head is a shortcut for mux.HandleFunc(pattern, handler).Methods("HEAD")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) HEAD(pattern string, handler interface{}) {
func (self *server) Head(pattern string, handler interface{}) {
self.register(pattern, handler, "HEAD") self.register(pattern, handler, "HEAD")
} }


// OPTIONS is a shortcut for mux.HandleFunc(pattern, handler).Methods("OPTIONS")
// Options is a shortcut for mux.HandleFunc(pattern, handler).Methods("OPTIONS")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
// NOTE method OPTIONS is **NOT** cachable, beware of what you are going to do. // NOTE method OPTIONS is **NOT** cachable, beware of what you are going to do.
func (self *server) OPTIONS(pattern string, handler interface{}) {
func (self *server) Options(pattern string, handler interface{}) {
self.register(pattern, handler, "OPTIONS") self.register(pattern, handler, "OPTIONS")
} }


// POST is a shortcut for mux.HandleFunc(pattern, handler).Methods("POST") // POST is a shortcut for mux.HandleFunc(pattern, handler).Methods("POST")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) POST(pattern string, handler interface{}) {
func (self *server) Post(pattern string, handler interface{}) {
self.register(pattern, handler, "POST") self.register(pattern, handler, "POST")
} }


// PUT is a shortcut for mux.HandleFunc(pattern, handler).Methods("PUT")
// Put is a shortcut for mux.HandleFunc(pattern, handler).Methods("PUT")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) PUT(pattern string, handler interface{}) {
func (self *server) Put(pattern string, handler interface{}) {
self.register(pattern, handler, "PUT") self.register(pattern, handler, "PUT")
} }


// DELETE is a shortcut for mux.HandleFunc(pattern, handler).Methods("DELETE")
// Delete is a shortcut for mux.HandleFunc(pattern, handler).Methods("DELETE")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) DELETE(pattern string, handler interface{}) {
func (self *server) Delete(pattern string, handler interface{}) {
self.register(pattern, handler, "DELETE") self.register(pattern, handler, "DELETE")
} }


// TRACE is a shortcut for mux.HandleFunc(pattern, handler).Methods("TRACE")
// Trace is a shortcut for mux.HandleFunc(pattern, handler).Methods("TRACE")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) TRACE(pattern string, handler interface{}) {
func (self *server) Trace(pattern string, handler interface{}) {
self.register(pattern, handler, "TRACE") self.register(pattern, handler, "TRACE")
} }


// CONNECT is a shortcut for mux.HandleFunc(pattern, handler).Methods("CONNECT")
// Connect is a shortcut for mux.HandleFunc(pattern, handler).Methods("CONNECT")
// it also fetch the full function name of the handler (with package) to name the route. // it also fetch the full function name of the handler (with package) to name the route.
func (self *server) CONNECT(pattern string, handler interface{}) {
func (self *server) Connect(pattern string, handler interface{}) {
self.register(pattern, handler, "CONNECT") self.register(pattern, handler, "CONNECT")
} }



+ 21
- 21
server_test.go View File

func TestName(t *testing.T) { func TestName(t *testing.T) {
Convey("rex.Name", t, func() { Convey("rex.Name", t, func() {
app := New() app := New()
app.GET("/login", func(w http.ResponseWriter, r *http.Request) {
app.Get("/login", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
}) })


}) })
} }


func TestGET(t *testing.T) {
func TestGet(t *testing.T) {
app := New() app := New()
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })


}) })
} }


func TestHEAD(t *testing.T) {
func TestHead(t *testing.T) {
app := New() app := New()
app.HEAD("/", func(w http.ResponseWriter, r *http.Request) {
app.Head("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })


}) })
} }


func TestOPTIONS(t *testing.T) {
func TestOptions(t *testing.T) {
app := New() app := New()
app.OPTIONS("/", func(w http.ResponseWriter, r *http.Request) {
app.Options("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })


}) })
} }


func TestPOST(t *testing.T) {
func TestPost(t *testing.T) {
app := New() app := New()
app.POST("/", func(w http.ResponseWriter, r *http.Request) {
app.Post("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
}) })
}) })
} }


func TestPUT(t *testing.T) {
func TestPut(t *testing.T) {
app := New() app := New()
app.PUT("/", func(w http.ResponseWriter, r *http.Request) {
app.Put("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
}) })
}) })
} }


func TestDELETE(t *testing.T) {
func TestDelete(t *testing.T) {
app := New() app := New()
app.DELETE("/", func(w http.ResponseWriter, r *http.Request) {
app.Delete("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
}) })
}) })
} }


func TestCONNECT(t *testing.T) {
func TestConnect(t *testing.T) {
app := New() app := New()
app.CONNECT("/", func(w http.ResponseWriter, r *http.Request) {
app.Connect("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })


}) })
} }


func TestTRACE(t *testing.T) {
func TestTrace(t *testing.T) {
app := New() app := New()
app.TRACE("/", func(w http.ResponseWriter, r *http.Request) {
app.Trace("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })




func TestGroup(t *testing.T) { func TestGroup(t *testing.T) {
app := New() app := New()
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "index") io.WriteString(w, "index")
}) })
user := app.Group("/users") user := app.Group("/users")
user.GET("/", func(w http.ResponseWriter, r *http.Request) {
user.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex") w.Header().Set("X-Powered-By", "rex")
}) })




func TestUse(t *testing.T) { func TestUse(t *testing.T) {
app := New() app := New()
app.GET("/", func(w http.ResponseWriter, r *http.Request) {
app.Get("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "index") io.WriteString(w, "index")
}) })
app.Use(func(next http.Handler) http.Handler { app.Use(func(next http.Handler) http.Handler {
func TestVars(t *testing.T) { func TestVars(t *testing.T) {
Convey("rex.Vars", t, func() { Convey("rex.Vars", t, func() {
app := New() app := New()
app.GET("/users/{id}", func(w http.ResponseWriter, r *http.Request) {
app.Get("/users/{id}", func(w http.ResponseWriter, r *http.Request) {
vars := app.Vars(r) vars := app.Vars(r)
So(vars["id"], ShouldEqual, "123") So(vars["id"], ShouldEqual, "123")
}) })

Loading…
Cancel
Save