github.com/evdatsion/aphelion-dpos-bft@v0.32.1/rpc/lib/test/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net/http" 6 "os" 7 8 amino "github.com/evdatsion/go-amino" 9 10 cmn "github.com/evdatsion/aphelion-dpos-bft/libs/common" 11 "github.com/evdatsion/aphelion-dpos-bft/libs/log" 12 rpcserver "github.com/evdatsion/aphelion-dpos-bft/rpc/lib/server" 13 rpctypes "github.com/evdatsion/aphelion-dpos-bft/rpc/lib/types" 14 ) 15 16 var routes = map[string]*rpcserver.RPCFunc{ 17 "hello_world": rpcserver.NewRPCFunc(HelloWorld, "name,num"), 18 } 19 20 func HelloWorld(ctx *rpctypes.Context, name string, num int) (Result, error) { 21 return Result{fmt.Sprintf("hi %s %d", name, num)}, nil 22 } 23 24 type Result struct { 25 Result string 26 } 27 28 func main() { 29 var ( 30 mux = http.NewServeMux() 31 cdc = amino.NewCodec() 32 logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) 33 ) 34 35 // Stop upon receiving SIGTERM or CTRL-C. 36 cmn.TrapSignal(logger, func() {}) 37 38 rpcserver.RegisterRPCFuncs(mux, routes, cdc, logger) 39 config := rpcserver.DefaultConfig() 40 listener, err := rpcserver.Listen("0.0.0.0:8008", config) 41 if err != nil { 42 cmn.Exit(err.Error()) 43 } 44 rpcserver.StartHTTPServer(listener, mux, logger, config) 45 }