wip
This commit is contained in:
37
example/body/main.go
Normal file
37
example/body/main.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"nf"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app := nf.New()
|
||||
|
||||
app.Post("/data", func(c *nf.Ctx) error {
|
||||
type Req struct {
|
||||
Name string `json:"name"`
|
||||
Age int `json:"age"`
|
||||
}
|
||||
|
||||
var (
|
||||
err error
|
||||
req = new(Req)
|
||||
rm = make(map[string]any)
|
||||
)
|
||||
|
||||
if err = c.BodyParser(req); err != nil {
|
||||
log.Print("err 1:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
if err = c.BodyParser(&rm); err != nil {
|
||||
log.Print("err 2:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
return c.JSON(nf.Map{"rm": rm, "req": req})
|
||||
})
|
||||
|
||||
log.Fatal(app.Run(":19991"))
|
||||
}
|
32
example/simple/logger.go
Normal file
32
example/simple/logger.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"nf"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Logger() nf.HandlerFunc {
|
||||
return func(c *nf.Ctx) error {
|
||||
// Start timer
|
||||
t := time.Now()
|
||||
// Process request
|
||||
err := c.Next()
|
||||
// Calculate resolution time
|
||||
log.Printf("[%d] %s in %v", c.StatusCode, c.Request.RequestURI, time.Since(t))
|
||||
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
func NewRecovery() nf.HandlerFunc {
|
||||
return func(c *nf.Ctx) error {
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
log.Printf("[recovery] %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
return c.Next()
|
||||
}
|
||||
}
|
@@ -20,6 +20,7 @@ func main() {
|
||||
})
|
||||
|
||||
v1 := app.Group("/v1")
|
||||
v1.Use(NewRecovery())
|
||||
v1.Get("/hello", func(c *nf.Ctx) error {
|
||||
return c.JSON(nf.Map{"version": "v1", "date": time.Now()})
|
||||
})
|
||||
@@ -27,11 +28,21 @@ func main() {
|
||||
v1.Get(
|
||||
"/name",
|
||||
func(c *nf.Ctx) error {
|
||||
c.Params["name"] = "zyp"
|
||||
c.Locals("name", "zyp")
|
||||
panic("name")
|
||||
return c.Next()
|
||||
},
|
||||
func(c *nf.Ctx) error {
|
||||
return c.SendString(fmt.Sprintf("hi, %s", c.Params["name"]))
|
||||
return c.SendString(fmt.Sprintf("hi, %s", c.Locals("name1")))
|
||||
},
|
||||
)
|
||||
|
||||
v2 := v1.Group("/v2")
|
||||
v2.Use(Logger())
|
||||
v2.Get(
|
||||
"/name",
|
||||
func(c *nf.Ctx) error {
|
||||
return c.SendString("hi, loveuer")
|
||||
},
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user