2023-04-23 17:57:36 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"embed"
|
|
|
|
"flag"
|
2024-01-18 17:11:44 +08:00
|
|
|
"git.nspix.com/golang/kos/entry/cli"
|
2023-08-25 09:53:45 +08:00
|
|
|
"git.nspix.com/golang/kos/entry/http"
|
|
|
|
httpkg "net/http"
|
2023-06-11 11:19:01 +08:00
|
|
|
|
2023-04-23 17:57:36 +08:00
|
|
|
"git.nspix.com/golang/kos"
|
|
|
|
)
|
|
|
|
|
|
|
|
//go:embed web
|
|
|
|
var webDir embed.FS
|
|
|
|
|
|
|
|
type subServer struct {
|
|
|
|
}
|
|
|
|
|
2024-01-18 17:11:44 +08:00
|
|
|
type users struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Age int `json:"age"`
|
|
|
|
Tags []string `json:"tags"`
|
|
|
|
}
|
|
|
|
|
2023-04-23 17:57:36 +08:00
|
|
|
func (s *subServer) Start(ctx context.Context) (err error) {
|
2023-08-25 09:53:45 +08:00
|
|
|
kos.Http().Root("/web", httpkg.FS(webDir))
|
|
|
|
kos.Http().Handle(httpkg.MethodGet, "/hello", func(ctx *http.Context) (err error) {
|
|
|
|
return ctx.Success("Hello World")
|
|
|
|
})
|
2024-01-18 17:11:44 +08:00
|
|
|
kos.Command().Handle("/test", "test command", func(ctx *cli.Context) (err error) {
|
|
|
|
return ctx.Success([][]string{
|
|
|
|
[]string{"NAME", "AGE"},
|
|
|
|
[]string{"SSS", "aaa"},
|
|
|
|
})
|
|
|
|
})
|
|
|
|
kos.Command().Handle("/users", "test command", func(ctx *cli.Context) (err error) {
|
|
|
|
return ctx.Success([]*users{
|
|
|
|
{Name: "Zhan", Age: 10, Tags: []string{"a", "b"}},
|
|
|
|
{Name: "Lisi", Age: 15, Tags: []string{"c", "d"}},
|
|
|
|
})
|
|
|
|
})
|
2023-04-23 17:57:36 +08:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *subServer) Stop() (err error) {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
flag.Parse()
|
|
|
|
svr := kos.Init(
|
|
|
|
kos.WithName("git.nspix.com/golang/test", "0.0.1"),
|
|
|
|
kos.WithServer(&subServer{}),
|
|
|
|
)
|
|
|
|
svr.Run()
|
|
|
|
}
|