- Notifications
You must be signed in to change notification settings - Fork28
moul/grpcbin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
httpbin like for gRPC
- Servers
- insecure gRPC (over HTTP, without TLS): grpc://grpcb.in:9000
- secure gRPC (with let's encrypt TLS): grpc://grpcb.in:443 and grpc://grpcb.in:9001
- webserver:https://grpcb.in
- Services
- Examples
- multiple languages:https://github.com/moul/grpcbin-example
- haskell:https://github.com/lucasdicioccio/http2-client-grpc-example/
$docker run -it --rm -p 9000:9000 -p 9001:9001 moul/grpcbin2017/12/18 14:48:01 listening on :9000 (insecure)2017/12/18 14:48:01 listening on :9001 (secure)
See examples on a the dedicated repo:grpcbin-example
package mainimport ("fmt""log""golang.org/x/net/context""google.golang.org/grpc"pb"github.com/moul/pb/grpcbin/go-grpc")funcmain() {// dialconn,_:=grpc.Dial("grpcb.in:9000",grpc.WithInsecure())deferconn.Close()// create client and contextclient:=pb.NewGRPCBinClient(conn)ctx:=context.Background()// call DummyUnaryres,err:=client.DummyUnary(ctx,&pb.DummyMessage{FString:"hello",FInt32:42,})iferr!=nil {log.Fatalf("failed to call DummyUnary: %v",err)}fmt.Println(res)}
Example withgrpcc:
#fetch proto and install tool$wget -qN https://github.com/moul/pb/raw/master/grpcbin/grpcbin.proto$npm install -g grpcc#interactive client$grpcc -i -p ./grpcbin.proto --address grpcb.in:9000Connecting to grpcbin.GRPCBin on grpcb.in:9000. Available globals: client - the client connection to GRPCBin index (EmptyMessage, callback) returns IndexReply dummyUnary (DummyMessage, callback) returns DummyMessage dummyServerStream (DummyMessage, callback) returns DummyMessage dummyClientStream (DummyMessage, callback) returns DummyMessage dummyBidirectionalStreamStream (DummyMessage, callback) returns DummyMessage printReply - function to easily print a unary call reply (alias: pr) streamReply - function to easily print stream call replies (alias: sr) createMetadata - convert JS objects into grpc metadata instances (alias: cm)GRPCBin@grpcb.in:9000>^C#call index endpoint$grpcc -i -p ./grpcbin.proto --address grpcb.in:9000 --eval'client.index({}, printReply)'{ "description": "gRPC testing server", "endpoints": [ { "path": "index", "description": "This endpoint." }, { "path": "dummyUnary", "description": "Unary endpoint that replies a received DummyMessage." }, [...] ]}#call dummyUnary with arguments$grpcc -i -p ./grpcbin.proto --address grpcb.in:9000 --eval'client.dummyUnary({f_string:"hello",f_int32:42}, printReply)'{ "f_string": "hello", "f_strings": [], "f_int32": 42, "f_int32s": [], "f_enum": "ENUM_0", "f_enums": [], "f_sub": null, "f_subs": [], "f_bool": false, "f_bools": [], "f_int64": "0", "f_int64s": [], "f_bytes": { "type": "Buffer", "data": [] }, "f_bytess": [], "f_float": 0, "f_floats": []}
About
httpbin like for gRPC
Topics
Resources
License
Code of conduct
Security policy
Stars
Watchers
Forks
Packages0
No packages published