upp/readme.md

63 lines
1.2 KiB
Markdown
Raw Normal View History

2024-12-30 15:09:02 +08:00
# UPP - your app
### Usage
2025-01-01 21:01:05 -08:00
> usage present
2024-12-30 15:09:02 +08:00
```go
app := upp.New()
app.With(db, es, api)
app.Run(ctx)
2025-01-01 21:01:05 -08:00
```
> simple example
```go
2025-01-01 22:14:45 -08:00
var config = struct {
ES string
}{}
func init() {
flag.StringVar(&config.ES, "es", "http://es.dev:9200", "")
flag.Parse()
tool.TablePrinter(config)
}
2025-01-01 21:01:05 -08:00
type Record struct {
Id uint64 `json:"id" gorm:"primaryKey;column:id"`
CreatedAt int64 `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
Name string `json:"name" gorm:"column:name"`
}
func main() {
2025-01-01 22:14:45 -08:00
app := upp.New(upp.Config{Debug: false})
2025-01-01 21:01:05 -08:00
app.With(upp.InitDB("sqlite://data.db", &Record{}))
app.With(upp.InitApi(api.New()))
2025-01-01 22:14:45 -08:00
app.With(upp.InitFn(func(u interfaces.Upp) {
u.UseLogger().Debug("[init] create init record")
u.UseDB().Create(&Record{Name: "init"})
}))
2025-01-01 21:01:05 -08:00
app.GET("/hello/:name", func(c *api.Ctx) error {
name := c.Param("name")
2025-01-01 22:14:45 -08:00
c.UseLogger().Debug("[hello] got name = %s", name)
2025-01-01 21:01:05 -08:00
record := &Record{Name: name}
err := c.UseDB().Create(record).Error
return c.JSON(map[string]any{"record": record, "err": err})
})
app.RunSignal()
}
2025-01-01 22:14:45 -08:00
2025-01-01 21:01:05 -08:00
```
2025-01-01 22:14:45 -08:00
> run with env
2025-01-01 21:01:05 -08:00
```sh
2025-01-01 22:14:45 -08:00
DEBUG=true go run .
DEBUG=true LISTEN_HTTP=0.0.0.0:8080 go run .
2024-12-30 15:09:02 +08:00
```