├── .gitignore ├── 01-unary_rpc_example ├── buf.gen.yaml ├── client │ └── main.go ├── ecommerce │ ├── product.pb.go │ └── product_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── product.proto └── server │ ├── main.go │ └── order.go ├── 02-server_streaming_rpc_example ├── buf.gen.yaml ├── client │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── order.proto └── server │ ├── main.go │ └── order.go ├── 03-client_streaming_rpc_example ├── buf.gen.yaml ├── client │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── order.proto └── server │ ├── main.go │ └── order.go ├── 04-bidirectional_streaming_rpc_example ├── buf.gen.yaml ├── client │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── order.proto └── server │ ├── main.go │ └── order.go ├── 05-all_in_one_rpc_example ├── buf.gen.yaml ├── client │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── order.proto └── server │ ├── main.go │ └── order.go ├── 06-interceptors ├── buf.gen.yaml ├── client │ ├── interceptor.go │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ ├── buf.yaml │ └── order.proto └── server │ ├── interceptor.go │ ├── main.go │ └── order.go ├── 07-error_handling ├── buf.gen.yaml ├── client │ └── main.go ├── common │ └── errors.go ├── ecommerce │ ├── product.pb.go │ └── product_grpc.pb.go ├── go.mod ├── go.sum ├── inner │ └── main.go ├── pb │ ├── buf.yaml │ └── product.proto └── server │ ├── main.go │ └── order.go ├── 08-metadata ├── client │ ├── interceptor.go │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ └── order.proto └── server │ ├── main.go │ └── order.go ├── 09-timeout ├── client │ ├── interceptor.go │ └── main.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ └── order.proto └── server │ ├── interceptor.go │ ├── main.go │ └── order.go ├── 10-secure ├── client │ └── main.go ├── ecommerce │ ├── product.pb.go │ └── product_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ └── product.proto ├── server │ ├── main.go │ └── order.go └── x509 │ ├── client.crt │ ├── client.csr │ ├── client.key │ ├── conf │ └── openssl.cnf │ ├── rootCA.srl │ ├── rootCa.crt │ ├── rootCa.key │ ├── server.crt │ ├── server.csr │ └── server.key ├── 11-authentication ├── 00-basic-authentication │ ├── client │ │ └── main.go │ └── server │ │ ├── main.go │ │ └── order.go ├── 01-jwt │ ├── client │ │ └── main.go │ └── server │ │ ├── main.go │ │ └── order.go ├── ecommerce │ ├── product.pb.go │ └── product_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ └── product.proto └── x509 │ ├── client.crt │ ├── client.csr │ ├── client.key │ ├── conf │ └── openssl.cnf │ ├── rootCA.srl │ ├── rootCa.crt │ ├── rootCa.key │ ├── server.crt │ ├── server.csr │ ├── server.key │ └── winged-axon-372312-154a8b3aa89d.json ├── 12-name_resolver ├── client │ ├── balancer │ │ ├── builder.go │ │ └── picker.go │ ├── main.go │ └── resolver │ │ ├── builder.go │ │ └── resolver.go ├── ecommerce │ ├── order.pb.go │ └── order_grpc.pb.go ├── go.mod ├── go.sum ├── pb │ └── order.proto ├── server │ ├── main.go │ └── order.go └── xds_client │ └── main.go ├── 13-ecosystem └── grpc-gateway │ ├── buf.gen.yaml │ ├── client │ └── main.go │ ├── doc │ ├── ecommerce │ │ ├── product.swagger.json │ │ └── v1 │ │ │ └── product.swagger.json │ └── product.swagger.json │ ├── ecommerce │ ├── product.pb.go │ ├── product.pb.gw.go │ └── product_grpc.pb.go │ ├── go.mod │ ├── go.sum │ ├── pb │ ├── buf.lock │ ├── buf.yaml │ └── product.proto │ ├── server │ ├── main.go │ └── order.go │ └── server2 │ ├── main.go │ └── order.go ├── LICENSE ├── README.md └── weixin.png /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/.gitignore -------------------------------------------------------------------------------- /01-unary_rpc_example/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/buf.gen.yaml -------------------------------------------------------------------------------- /01-unary_rpc_example/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/client/main.go -------------------------------------------------------------------------------- /01-unary_rpc_example/ecommerce/product.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/ecommerce/product.pb.go -------------------------------------------------------------------------------- /01-unary_rpc_example/ecommerce/product_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/ecommerce/product_grpc.pb.go -------------------------------------------------------------------------------- /01-unary_rpc_example/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/go.mod -------------------------------------------------------------------------------- /01-unary_rpc_example/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/go.sum -------------------------------------------------------------------------------- /01-unary_rpc_example/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/pb/buf.yaml -------------------------------------------------------------------------------- /01-unary_rpc_example/pb/product.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/pb/product.proto -------------------------------------------------------------------------------- /01-unary_rpc_example/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/server/main.go -------------------------------------------------------------------------------- /01-unary_rpc_example/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/01-unary_rpc_example/server/order.go -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/buf.gen.yaml -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/client/main.go -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/ecommerce/order.pb.go -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/go.mod -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/go.sum -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/pb/buf.yaml -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/pb/order.proto -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/server/main.go -------------------------------------------------------------------------------- /02-server_streaming_rpc_example/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/02-server_streaming_rpc_example/server/order.go -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/buf.gen.yaml -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/client/main.go -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/ecommerce/order.pb.go -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/go.mod -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/go.sum -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/pb/buf.yaml -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/pb/order.proto -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/server/main.go -------------------------------------------------------------------------------- /03-client_streaming_rpc_example/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/03-client_streaming_rpc_example/server/order.go -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/buf.gen.yaml -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/client/main.go -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/ecommerce/order.pb.go -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/go.mod -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/go.sum -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/pb/buf.yaml -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/pb/order.proto -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/server/main.go -------------------------------------------------------------------------------- /04-bidirectional_streaming_rpc_example/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/04-bidirectional_streaming_rpc_example/server/order.go -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/buf.gen.yaml -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/client/main.go -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/ecommerce/order.pb.go -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/go.mod -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/go.sum -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/pb/buf.yaml -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/pb/order.proto -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/server/main.go -------------------------------------------------------------------------------- /05-all_in_one_rpc_example/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/05-all_in_one_rpc_example/server/order.go -------------------------------------------------------------------------------- /06-interceptors/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/buf.gen.yaml -------------------------------------------------------------------------------- /06-interceptors/client/interceptor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/client/interceptor.go -------------------------------------------------------------------------------- /06-interceptors/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/client/main.go -------------------------------------------------------------------------------- /06-interceptors/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/ecommerce/order.pb.go -------------------------------------------------------------------------------- /06-interceptors/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /06-interceptors/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/go.mod -------------------------------------------------------------------------------- /06-interceptors/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/go.sum -------------------------------------------------------------------------------- /06-interceptors/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/pb/buf.yaml -------------------------------------------------------------------------------- /06-interceptors/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/pb/order.proto -------------------------------------------------------------------------------- /06-interceptors/server/interceptor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/server/interceptor.go -------------------------------------------------------------------------------- /06-interceptors/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/server/main.go -------------------------------------------------------------------------------- /06-interceptors/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/06-interceptors/server/order.go -------------------------------------------------------------------------------- /07-error_handling/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/buf.gen.yaml -------------------------------------------------------------------------------- /07-error_handling/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/client/main.go -------------------------------------------------------------------------------- /07-error_handling/common/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/common/errors.go -------------------------------------------------------------------------------- /07-error_handling/ecommerce/product.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/ecommerce/product.pb.go -------------------------------------------------------------------------------- /07-error_handling/ecommerce/product_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/ecommerce/product_grpc.pb.go -------------------------------------------------------------------------------- /07-error_handling/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/go.mod -------------------------------------------------------------------------------- /07-error_handling/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/go.sum -------------------------------------------------------------------------------- /07-error_handling/inner/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/inner/main.go -------------------------------------------------------------------------------- /07-error_handling/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/pb/buf.yaml -------------------------------------------------------------------------------- /07-error_handling/pb/product.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/pb/product.proto -------------------------------------------------------------------------------- /07-error_handling/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/server/main.go -------------------------------------------------------------------------------- /07-error_handling/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/07-error_handling/server/order.go -------------------------------------------------------------------------------- /08-metadata/client/interceptor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/client/interceptor.go -------------------------------------------------------------------------------- /08-metadata/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/client/main.go -------------------------------------------------------------------------------- /08-metadata/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/ecommerce/order.pb.go -------------------------------------------------------------------------------- /08-metadata/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /08-metadata/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/go.mod -------------------------------------------------------------------------------- /08-metadata/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/go.sum -------------------------------------------------------------------------------- /08-metadata/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/pb/order.proto -------------------------------------------------------------------------------- /08-metadata/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/server/main.go -------------------------------------------------------------------------------- /08-metadata/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/08-metadata/server/order.go -------------------------------------------------------------------------------- /09-timeout/client/interceptor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/client/interceptor.go -------------------------------------------------------------------------------- /09-timeout/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/client/main.go -------------------------------------------------------------------------------- /09-timeout/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/ecommerce/order.pb.go -------------------------------------------------------------------------------- /09-timeout/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /09-timeout/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/go.mod -------------------------------------------------------------------------------- /09-timeout/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/go.sum -------------------------------------------------------------------------------- /09-timeout/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/pb/order.proto -------------------------------------------------------------------------------- /09-timeout/server/interceptor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/server/interceptor.go -------------------------------------------------------------------------------- /09-timeout/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/server/main.go -------------------------------------------------------------------------------- /09-timeout/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/09-timeout/server/order.go -------------------------------------------------------------------------------- /10-secure/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/client/main.go -------------------------------------------------------------------------------- /10-secure/ecommerce/product.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/ecommerce/product.pb.go -------------------------------------------------------------------------------- /10-secure/ecommerce/product_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/ecommerce/product_grpc.pb.go -------------------------------------------------------------------------------- /10-secure/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/go.mod -------------------------------------------------------------------------------- /10-secure/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/go.sum -------------------------------------------------------------------------------- /10-secure/pb/product.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/pb/product.proto -------------------------------------------------------------------------------- /10-secure/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/server/main.go -------------------------------------------------------------------------------- /10-secure/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/server/order.go -------------------------------------------------------------------------------- /10-secure/x509/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/client.crt -------------------------------------------------------------------------------- /10-secure/x509/client.csr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/client.csr -------------------------------------------------------------------------------- /10-secure/x509/client.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/client.key -------------------------------------------------------------------------------- /10-secure/x509/conf/openssl.cnf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/conf/openssl.cnf -------------------------------------------------------------------------------- /10-secure/x509/rootCA.srl: -------------------------------------------------------------------------------- 1 | B55F23EC2814992C 2 | -------------------------------------------------------------------------------- /10-secure/x509/rootCa.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/rootCa.crt -------------------------------------------------------------------------------- /10-secure/x509/rootCa.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/rootCa.key -------------------------------------------------------------------------------- /10-secure/x509/server.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/server.crt -------------------------------------------------------------------------------- /10-secure/x509/server.csr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/server.csr -------------------------------------------------------------------------------- /10-secure/x509/server.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/10-secure/x509/server.key -------------------------------------------------------------------------------- /11-authentication/00-basic-authentication/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/00-basic-authentication/client/main.go -------------------------------------------------------------------------------- /11-authentication/00-basic-authentication/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/00-basic-authentication/server/main.go -------------------------------------------------------------------------------- /11-authentication/00-basic-authentication/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/00-basic-authentication/server/order.go -------------------------------------------------------------------------------- /11-authentication/01-jwt/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/01-jwt/client/main.go -------------------------------------------------------------------------------- /11-authentication/01-jwt/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/01-jwt/server/main.go -------------------------------------------------------------------------------- /11-authentication/01-jwt/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/01-jwt/server/order.go -------------------------------------------------------------------------------- /11-authentication/ecommerce/product.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/ecommerce/product.pb.go -------------------------------------------------------------------------------- /11-authentication/ecommerce/product_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/ecommerce/product_grpc.pb.go -------------------------------------------------------------------------------- /11-authentication/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/go.mod -------------------------------------------------------------------------------- /11-authentication/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/go.sum -------------------------------------------------------------------------------- /11-authentication/pb/product.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/pb/product.proto -------------------------------------------------------------------------------- /11-authentication/x509/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/client.crt -------------------------------------------------------------------------------- /11-authentication/x509/client.csr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/client.csr -------------------------------------------------------------------------------- /11-authentication/x509/client.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/client.key -------------------------------------------------------------------------------- /11-authentication/x509/conf/openssl.cnf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/conf/openssl.cnf -------------------------------------------------------------------------------- /11-authentication/x509/rootCA.srl: -------------------------------------------------------------------------------- 1 | B55F23EC2814992C 2 | -------------------------------------------------------------------------------- /11-authentication/x509/rootCa.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/rootCa.crt -------------------------------------------------------------------------------- /11-authentication/x509/rootCa.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/rootCa.key -------------------------------------------------------------------------------- /11-authentication/x509/server.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/server.crt -------------------------------------------------------------------------------- /11-authentication/x509/server.csr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/server.csr -------------------------------------------------------------------------------- /11-authentication/x509/server.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/server.key -------------------------------------------------------------------------------- /11-authentication/x509/winged-axon-372312-154a8b3aa89d.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/11-authentication/x509/winged-axon-372312-154a8b3aa89d.json -------------------------------------------------------------------------------- /12-name_resolver/client/balancer/builder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/client/balancer/builder.go -------------------------------------------------------------------------------- /12-name_resolver/client/balancer/picker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/client/balancer/picker.go -------------------------------------------------------------------------------- /12-name_resolver/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/client/main.go -------------------------------------------------------------------------------- /12-name_resolver/client/resolver/builder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/client/resolver/builder.go -------------------------------------------------------------------------------- /12-name_resolver/client/resolver/resolver.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/client/resolver/resolver.go -------------------------------------------------------------------------------- /12-name_resolver/ecommerce/order.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/ecommerce/order.pb.go -------------------------------------------------------------------------------- /12-name_resolver/ecommerce/order_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/ecommerce/order_grpc.pb.go -------------------------------------------------------------------------------- /12-name_resolver/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/go.mod -------------------------------------------------------------------------------- /12-name_resolver/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/go.sum -------------------------------------------------------------------------------- /12-name_resolver/pb/order.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/pb/order.proto -------------------------------------------------------------------------------- /12-name_resolver/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/server/main.go -------------------------------------------------------------------------------- /12-name_resolver/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/server/order.go -------------------------------------------------------------------------------- /12-name_resolver/xds_client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/12-name_resolver/xds_client/main.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/buf.gen.yaml -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/client/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/client/main.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/doc/ecommerce/product.swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/doc/ecommerce/product.swagger.json -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/doc/ecommerce/v1/product.swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/doc/ecommerce/v1/product.swagger.json -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/doc/product.swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/doc/product.swagger.json -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/ecommerce/product.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/ecommerce/product.pb.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/ecommerce/product.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/ecommerce/product.pb.gw.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/ecommerce/product_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/ecommerce/product_grpc.pb.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/go.mod -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/go.sum -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/pb/buf.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/pb/buf.lock -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/pb/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/pb/buf.yaml -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/pb/product.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/pb/product.proto -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/server/main.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/server/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/server/order.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/server2/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/server2/main.go -------------------------------------------------------------------------------- /13-ecosystem/grpc-gateway/server2/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/13-ecosystem/grpc-gateway/server2/order.go -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/README.md -------------------------------------------------------------------------------- /weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liangwt/grpc-example/HEAD/weixin.png --------------------------------------------------------------------------------