5
5
[ ![ Test Coverage] ( https://api.codeclimate.com/v1/badges/e820b394cdbd47103165/test_coverage )] ( https://codeclimate.com/github/osamingo/jsonrpc/test_coverage )
6
6
[ ![ Go Report Card] ( https://goreportcard.com/badge/osamingo/jsonrpc )] ( https://goreportcard.com/report/osamingo/jsonrpc )
7
7
[ ![ codebeat badge] ( https://codebeat.co/badges/cbd0290d-200b-4693-80dc-296d9447c35b )] ( https://codebeat.co/projects/github-com-osamingo-jsonrpc )
8
- [ ![ Maintainability] ( https://api.codeclimate.com/v1/badges/e820b394cdbd47103165/maintainability )] ( https://codeclimate.com/github/osamingo/jsonrpc/maintainability )
9
8
[ ![ GoDoc] ( https://godoc.org/github.com/osamingo/jsonrpc?status.svg )] ( https://godoc.org/github.com/osamingo/jsonrpc )
10
9
[ ![ GitHub license] ( https://img.shields.io/badge/license-MIT-blue.svg )] ( https://raw.githubusercontent.com/osamingo/jsonrpc/master/LICENSE )
11
10
@@ -31,11 +30,15 @@ $ go get -u github.com/osamingo/jsonrpc
31
30
package main
32
31
33
32
import (
33
+ " bytes"
34
34
" context"
35
- " encoding/json "
35
+ " io "
36
36
" log"
37
37
" net/http"
38
+ " net/http/httptest"
39
+ " os"
38
40
41
+ " github.com/intel-go/fastjson"
39
42
" github.com/osamingo/jsonrpc"
40
43
)
41
44
49
52
}
50
53
)
51
54
52
- func (h EchoHandler ) ServeJSONRPC (c context .Context , params *json .RawMessage ) (interface {}, *Error) {
55
+ func (h EchoHandler ) ServeJSONRPC (c context .Context , params *fastjson .RawMessage ) (interface {}, *jsonrpc. Error ) {
53
56
54
57
var p EchoParams
55
58
if err := jsonrpc.Unmarshal (params, &p); err != nil {
@@ -71,7 +74,23 @@ func main() {
71
74
72
75
http.Handle (" /jrpc" , mr)
73
76
http.HandleFunc (" /jrpc/debug" , mr.ServeDebug )
74
- if err := http.ListenAndServe (" :8080" , nil ); err != nil {
77
+
78
+ srv := httptest.NewServer (http.DefaultServeMux )
79
+ defer srv.Close ()
80
+
81
+ resp , err := http.Post (srv.URL +" /jrpc" , " application/json" , bytes.NewBufferString (` {
82
+ "jsonrpc": "2.0",
83
+ "method": "Main.Echo",
84
+ "params": {
85
+ "name": "John Doe"
86
+ },
87
+ "id": "243a718a-2ebb-4e32-8cc8-210c39e8a14b"
88
+ }` ))
89
+ if err != nil {
90
+ log.Fatalln (err)
91
+ }
92
+ defer resp.Body .Close ()
93
+ if _ , err := io.Copy (os.Stdout , resp.Body ); err != nil {
75
94
log.Fatalln (err)
76
95
}
77
96
}
0 commit comments