package jsonrpc import ( "fmt" ) func Example() { type Person struct { Name string `json:"name"` Age int `json:"age"` Country string `json:"country"` } // create client rpcClient := NewRPCClient("http://my-rpc-service") // execute rpc to service response, _ := rpcClient.Call("getPersonByID", 12345) // parse result into struct var person Person response.GetObject(&person) // change result and send back using rpc person.Age = 35 rpcClient.Call("setPersonByID", 12345, person) } func ExampleRPCClient_Call() { rpcClient := NewRPCClient("http://my-rpc-service") // result processing omitted, see: RPCResponse methods rpcClient.Call("getTimestamp") rpcClient.Call("getPerson", 1234) rpcClient.Call("addNumbers", 5, 2, 3) rpcClient.Call("strangeFunction", 1, true, "alex", 3.4) type Person struct { Name string `json:"name"` Age int `json:"age"` Country string `json:"country"` } person := Person{ Name: "alex", Age: 33, Country: "germany", } rpcClient.Call("setPersonByID", 123, person) } func ExampleRPCClient_CallNamed() { rpcClient := NewRPCClient("http://my-rpc-service") // result processing omitted, see: RPCResponse methods rpcClient.CallNamed("createPerson", map[string]interface{}{ "name": "Bartholomew Allen", "nicknames": []string{"Barry", "Flash"}, "male": true, "age": 28, "address": map[string]interface{}{"street": "Main Street", "city": "Central City"}, }) } func ExampleRPCResponse() { rpcClient := NewRPCClient("http://my-rpc-service") response, _ := rpcClient.Call("addNumbers", 1, 2, 3) sum, _ := response.GetInt() fmt.Println(sum) response, _ = rpcClient.Call("isValidEmail", "my@ema.il") valid, _ := response.GetBool() fmt.Println(valid) response, _ = rpcClient.Call("getJoke") joke, _ := response.GetString() fmt.Println(joke) response, _ = rpcClient.Call("getPi", 10) piRounded, _ := response.GetFloat64() fmt.Println(piRounded) var rndNumbers []int response, _ = rpcClient.Call("getRndIntNumbers", 10) response.GetObject(&rndNumbers) fmt.Println(rndNumbers[0]) type Person struct { Name string `json:"name"` Age int `json:"age"` Country string `json:"country"` } var p Person response, _ = rpcClient.Call("getPersonByID", 1234) response.GetObject(&p) fmt.Println(p.Name) } func ExampleRPCClient_Batch() { rpcClient := NewRPCClient(httpServer.URL) req1 := rpcClient.NewRPCRequestObject("addNumbers", 1, 2, 3) req2 := rpcClient.NewRPCRequestObject("getTimestamp") responses, _ := rpcClient.Batch(req1, req2) response, _ := responses.GetResponseOf(req2) timestamp, _ := response.GetInt() fmt.Println(timestamp) }