Files
dsrpc/example/srv/netsrv.go
2023-04-01 00:33:59 +02:00

69 lines
1.1 KiB
Go

/*
*
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
*
*/
package main
import (
"log"
"netsrv/api"
"github.com/kindsoldier/dsrpc"
)
func main() {
err := server()
if err != nil {
log.Println(err)
}
}
func server() error {
var err error
serv := dsrpc.NewService()
cont := NewController()
serv.Handler(api.HelloMethod, cont.HelloHandler)
serv.PreMiddleware(dsrpc.LogRequest)
serv.PostMiddleware(dsrpc.LogResponse)
serv.PostMiddleware(dsrpc.LogAccess)
err = serv.Listen(":8081")
if err != nil {
return err
}
return err
}
type Controller struct {
}
func NewController() *Controller {
return &Controller{}
}
func (cont *Controller) HelloHandler(content *dsrpc.Content) error {
var err error
params := api.HelloParams{}
err = content.BindParams(&params)
if err != nil {
return err
}
log.Println("hello message:", params.Message)
result := api.HelloResult{
Message: "hello, client!",
}
err = content.SendResult(&result, 0)
if err != nil {
return err
}
return err
}