server: work in progress: routing config
This commit is contained in:
parent
e2afdeb61a
commit
ca08bbb9c7
3 changed files with 35 additions and 21 deletions
32
server/config.go
Normal file
32
server/config.go
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package server
|
||||||
|
|
||||||
|
import (
|
||||||
|
lib "git.sr.ht/~cco/go-scopes"
|
||||||
|
"git.sr.ht/~cco/go-scopes/config"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Cfg struct {
|
||||||
|
*config.BaseCfg
|
||||||
|
Port string
|
||||||
|
Addr string
|
||||||
|
routes []routeCfg
|
||||||
|
}
|
||||||
|
|
||||||
|
type routeCfg struct {
|
||||||
|
methods []string
|
||||||
|
path string
|
||||||
|
spec routeSpec
|
||||||
|
}
|
||||||
|
|
||||||
|
type routeSpec interface{}
|
||||||
|
|
||||||
|
type fsSpec struct {
|
||||||
|
docRoot string
|
||||||
|
}
|
||||||
|
|
||||||
|
type rcellSpec struct {
|
||||||
|
lib.Config
|
||||||
|
}
|
||||||
|
|
||||||
|
type Handler func(lib.Context, *gin.Context)
|
|
@ -4,30 +4,10 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
lib "git.sr.ht/~cco/go-scopes"
|
lib "git.sr.ht/~cco/go-scopes"
|
||||||
"git.sr.ht/~cco/go-scopes/config"
|
|
||||||
"git.sr.ht/~cco/go-scopes/core"
|
"git.sr.ht/~cco/go-scopes/core"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Cfg struct {
|
|
||||||
*config.BaseCfg
|
|
||||||
Port string
|
|
||||||
Routes []RouteCfg
|
|
||||||
}
|
|
||||||
|
|
||||||
type RouteCfg struct {
|
|
||||||
Method string
|
|
||||||
Path string
|
|
||||||
Handler Handler
|
|
||||||
}
|
|
||||||
|
|
||||||
type FSCfg struct {
|
|
||||||
RouteCfg
|
|
||||||
DocRoot string
|
|
||||||
}
|
|
||||||
|
|
||||||
type Handler func(lib.Context, *gin.Context)
|
|
||||||
|
|
||||||
type ServerState struct {
|
type ServerState struct {
|
||||||
server *http.Server
|
server *http.Server
|
||||||
}
|
}
|
||||||
|
@ -45,7 +25,6 @@ func HandleDone(ctx lib.Context) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func Serve(ctx lib.Context) {
|
func Serve(ctx lib.Context) {
|
||||||
//r := gin.Default()
|
|
||||||
r := gin.New()
|
r := gin.New()
|
||||||
r.Use(gin.Recovery())
|
r.Use(gin.Recovery())
|
||||||
r.Use(Logger(ctx))
|
r.Use(Logger(ctx))
|
||||||
|
|
|
@ -31,6 +31,9 @@ func Config() lib.Config {
|
||||||
BaseCfg: b("server", server.Start),
|
BaseCfg: b("server", server.Start),
|
||||||
Port: ovr("8123", SERVER_PORT),
|
Port: ovr("8123", SERVER_PORT),
|
||||||
}
|
}
|
||||||
|
// server_c.AddRoute("/docs", FileServer("html"))
|
||||||
|
// server_rc := server_c.AddRoute("/api", RCellHandler())
|
||||||
|
// server_rc.AddAction("demo", action.Base(action.Forward, "test-receiver"))
|
||||||
|
|
||||||
test_client := &client.Cfg{
|
test_client := &client.Cfg{
|
||||||
BaseCfg: b("test-client", core.Start),
|
BaseCfg: b("test-client", core.Start),
|
||||||
|
|
Loading…
Add table
Reference in a new issue