Added more HTTP methods
This commit is contained in:
parent
2a91cc3fc0
commit
c744c93215
17
Server.go
17
Server.go
@ -25,7 +25,22 @@ func New() *Server {
|
|||||||
|
|
||||||
// Get registers your function to be called when the given GET path has been requested.
|
// Get registers your function to be called when the given GET path has been requested.
|
||||||
func (server *Server) Get(path string, handler Handler) {
|
func (server *Server) Get(path string, handler Handler) {
|
||||||
server.router.Add("GET", path, handler)
|
server.router.Add(http.MethodGet, path, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Post registers your function to be called when the given POST path has been requested.
|
||||||
|
func (server *Server) Post(path string, handler Handler) {
|
||||||
|
server.router.Add(http.MethodPost, path, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete registers your function to be called when the given DELETE path has been requested.
|
||||||
|
func (server *Server) Delete(path string, handler Handler) {
|
||||||
|
server.router.Add(http.MethodDelete, path, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Put registers your function to be called when the given PUT path has been requested.
|
||||||
|
func (server *Server) Put(path string, handler Handler) {
|
||||||
|
server.router.Add(http.MethodPut, path, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServeHTTP responds to the given request.
|
// ServeHTTP responds to the given request.
|
||||||
|
@ -39,23 +39,39 @@ func TestRouter(t *testing.T) {
|
|||||||
return ctx.String("Hello")
|
return ctx.String("Hello")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
s.Post("/", func(ctx server.Context) error {
|
||||||
|
return ctx.String("Post")
|
||||||
|
})
|
||||||
|
|
||||||
|
s.Delete("/", func(ctx server.Context) error {
|
||||||
|
return ctx.String("Delete")
|
||||||
|
})
|
||||||
|
|
||||||
|
s.Put("/", func(ctx server.Context) error {
|
||||||
|
return ctx.String("Put")
|
||||||
|
})
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
Method string
|
||||||
URL string
|
URL string
|
||||||
Status int
|
Status int
|
||||||
Body string
|
Body string
|
||||||
}{
|
}{
|
||||||
{URL: "/", Status: http.StatusOK, Body: "Hello"},
|
{Method: "GET", URL: "/", Status: http.StatusOK, Body: "Hello"},
|
||||||
{URL: "/blog/post", Status: http.StatusOK, Body: "Hello"},
|
{Method: "GET", URL: "/blog/post", Status: http.StatusOK, Body: "Hello"},
|
||||||
{URL: "/error", Status: http.StatusUnauthorized, Body: "Not logged in"},
|
{Method: "GET", URL: "/error", Status: http.StatusUnauthorized, Body: "Not logged in"},
|
||||||
{URL: "/error2", Status: http.StatusUnauthorized, Body: "Not logged in\nMissing auth token"},
|
{Method: "GET", URL: "/error2", Status: http.StatusUnauthorized, Body: "Not logged in\nMissing auth token"},
|
||||||
{URL: "/not-found", Status: http.StatusNotFound, Body: http.StatusText(http.StatusNotFound)},
|
{Method: "GET", URL: "/not-found", Status: http.StatusNotFound, Body: http.StatusText(http.StatusNotFound)},
|
||||||
{URL: "/reader", Status: http.StatusOK, Body: "Hello"},
|
{Method: "GET", URL: "/reader", Status: http.StatusOK, Body: "Hello"},
|
||||||
{URL: "/string", Status: http.StatusOK, Body: "Hello"},
|
{Method: "GET", URL: "/string", Status: http.StatusOK, Body: "Hello"},
|
||||||
|
{Method: "POST", URL: "/", Status: http.StatusOK, Body: "Post"},
|
||||||
|
{Method: "DELETE", URL: "/", Status: http.StatusOK, Body: "Delete"},
|
||||||
|
{Method: "PUT", URL: "/", Status: http.StatusOK, Body: "Put"},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run("example.com"+test.URL, func(t *testing.T) {
|
t.Run("example.com"+test.URL, func(t *testing.T) {
|
||||||
request := httptest.NewRequest(http.MethodGet, test.URL, nil)
|
request := httptest.NewRequest(test.Method, test.URL, nil)
|
||||||
response := httptest.NewRecorder()
|
response := httptest.NewRecorder()
|
||||||
s.ServeHTTP(response, request)
|
s.ServeHTTP(response, request)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user