1
0
mirror of https://github.com/labstack/echo.git synced 2025-01-22 03:09:04 +02:00
echo/examples/crud/server.go
Vishal Rana 381fbae1ff Default handler now returns error.
Signed-off-by: Vishal Rana <vr@labstack.com>
2015-04-18 16:47:48 -07:00

72 lines
1.1 KiB
Go

package main
import (
"net/http"
"strconv"
"github.com/labstack/echo"
mw "github.com/labstack/echo/middleware"
)
type (
user struct {
ID int
Name string
Age int
}
)
var (
users = map[int]user{}
seq = 1
)
//----------
// Handlers
//----------
func createUser(c *echo.Context) error {
u := &user{
ID: seq,
}
if err := c.Bind(u); err != nil {
return err
}
users[u.ID] = *u
seq++
return c.JSON(http.StatusCreated, u)
}
func getUser(c *echo.Context) error {
id, _ := strconv.Atoi(c.Param("id"))
return c.JSON(http.StatusOK, users[id])
}
func updateUser(c *echo.Context) error {
// id, _ := strconv.Atoi(c.Param("id"))
// users[id]
return c.NoContent(http.StatusNoContent)
}
func deleteUser(c *echo.Context) error {
id, _ := strconv.Atoi(c.Param("id"))
delete(users, id)
return c.NoContent(http.StatusNoContent)
}
func main() {
e := echo.New()
// Middleware
e.Use(mw.Logger)
// Routes
e.Post("/users", createUser)
e.Get("/users/:id", getUser)
e.Put("/users/:id", updateUser)
e.Delete("/users/:id", deleteUser)
// Start server
e.Run(":8080")
}