initial import of sources
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
*~
|
||||
*.bak
|
||||
*.bin
|
||||
*.png
|
||||
*.gif
|
||||
*.jpg
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
|
||||
*
|
||||
*/
|
||||
|
||||
package api
|
||||
|
||||
const HelloMethod string = "hello"
|
||||
|
||||
type HelloParams struct {
|
||||
Message string `msgpack:"message" json:"message"`
|
||||
}
|
||||
|
||||
func NewHelloParams() *HelloParams {
|
||||
return &HelloParams{}
|
||||
}
|
||||
|
||||
type HelloResult struct {
|
||||
Message string `msgpack:"message" json:"message"`
|
||||
}
|
||||
|
||||
func NewHelloResult() *HelloResult {
|
||||
return &HelloResult{}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
*~
|
||||
*.bak
|
||||
*.bin
|
||||
*.png
|
||||
*.gif
|
||||
*.jpg
|
||||
*cli
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
|
||||
*
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/kindsoldier/dsrpc"
|
||||
"netsrv/api"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
err := exec()
|
||||
if err != nil {
|
||||
fmt.Println("exec err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func exec() error {
|
||||
var err error
|
||||
|
||||
params := api.NewHelloParams()
|
||||
params.Message = "hello, server!"
|
||||
|
||||
result := api.NewHelloResult()
|
||||
|
||||
err = dsrpc.Exec("127.0.0.1:8081", api.HelloMethod, params, result, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("result:", result.Message)
|
||||
return err
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
module netsrv
|
||||
|
||||
go 1.17
|
||||
|
||||
require github.com/kindsoldier/dsrpc v0.0.1
|
||||
|
||||
replace github.com/kindsoldier/dsrpc => ../
|
||||
@@ -0,0 +1,10 @@
|
||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
@@ -0,0 +1,7 @@
|
||||
*~
|
||||
*.bak
|
||||
*.bin
|
||||
*.png
|
||||
*.gif
|
||||
*.jpg
|
||||
*srv
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
|
||||
*
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"github.com/kindsoldier/dsrpc"
|
||||
"netsrv/api"
|
||||
)
|
||||
|
||||
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(context *dsrpc.Context) error {
|
||||
var err error
|
||||
params := api.NewHelloParams()
|
||||
err = context.BindParams(params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Println("hello message:", params.Message)
|
||||
|
||||
result := api.NewHelloResult()
|
||||
result.Message = "hello!"
|
||||
|
||||
err = context.SendResult(result, 0)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user