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  }