2024-12-26 23:02:37 -08:00
2024-12-26 23:02:37 -08:00
2024-12-17 09:19:07 +08:00
2024-12-17 09:19:07 +08:00
2024-01-12 19:18:33 +08:00
2024-12-26 19:20:17 -08:00
2024-12-26 19:20:17 -08:00
2024-02-20 15:34:00 +08:00
2024-12-26 19:20:17 -08:00
2024-12-17 09:19:07 +08:00
2024-08-27 14:39:24 +08:00
2024-06-25 16:36:43 +08:00
2024-02-20 15:34:00 +08:00
2024-02-20 15:34:00 +08:00
2024-06-07 17:39:06 +08:00

NF Web Framework

Usage

basic usage
  • get param

    func main() {
        app := nf.New()
    
        app.Get("/hello/:name", func(c *nf.Ctx) error {
            name := c.Param("name")
            return c.JSON(nf.Map{"status": 200, "data": "hello, " + name})
        })
    
        log.Fatal(app.Run("0.0.0.0:80"))
    }
    
  • parse request query

    func handleQuery(c *nf.Ctx) error {
        type Req struct {
            Name string   `query:"name"`
            Addr []string `query:"addr"`
        }
    
        var (
            err error
            req = Req{}
        )
    
        if err = c.QueryParser(&req); err != nil {
            return nf.NewNFError(400, err.Error())
        }
    
        return c.JSON(nf.Map{"query": req})
    }
    
  • parse application/json body

    func handlePost(c *nf.Ctx) error {
        type Req struct {
            Name string   `json:"name"`
            Addr []string `json:"addr"`
        }
    
        var (
            err error
            req = Req{}
            reqMap = make(map[string]interface{})
        )
    
        if err = c.BodyParser(&req); err != nil {
            return nf.NewNFError(400, err.Error())
        }
    
        // can parse body multi times
        if err = c.BodyParser(&reqMap); err != nil {
            return nf.NewNFError(400, err.Error())
        }
    
        return c.JSON(nf.Map{"struct": req, "map": reqMap})
    }
    
  • pass local value

    type User struct {
        Id int
        Username string
    }
    
    func main() {
        app := nf.New()
        app.Use(auth())
    
        app.Get("/item/list", list)
    }
    
    func auth() nf.HandlerFunc {
        return func(c *nf.Ctx) error {
            c.Locals("user", &User{Id: 1, Username:"user"})
            return c.Next()
        }
    }
    
    func list(c *nf.Ctx) error {
        user, ok := c.Locals("user").(*User)
        if !ok {
            return c.Status(401).SendString("login required")
        }
    
        ...
    }
    
Description
not found web framework from golang fiber's style but implement by http
Readme 244 KiB
Languages
Go 100%