package main
import "github.com/go-mizu/mizu"
func main() {
app := mizu.New()
// Home page
app.Get("/", func(c *mizu.Ctx) error {
return c.Text(200, "Welcome to my API!")
})
// Return JSON data
app.Get("/status", func(c *mizu.Ctx) error {
return c.JSON(200, map[string]string{
"status": "running",
"version": "1.0.0",
})
})
// Capture a path parameter
// {name} captures that part of the URL
app.Get("/hello/{name}", func(c *mizu.Ctx) error {
name := c.Param("name") // Get the captured value
return c.JSON(200, map[string]string{
"message": "Hello, " + name + "!",
})
})
// Handle POST requests with JSON body
app.Post("/echo", func(c *mizu.Ctx) error {
var input map[string]any
if err := c.BindJSON(&input, 1<<20); err != nil { // 1MB limit
return c.JSON(400, map[string]string{"error": err.Error()})
}
return c.JSON(200, input)
})
app.Listen(":3000")
}