Add gRPC support to Pact.
We should note that there are four kinds of services:
- Unary RPCs
- Server streaming RPCs
- Client streaming RPCs
- Bidirectional streaming
Should they be included in the formulation of the consumer contract?
TODO: Specify what a successful implemtation of gRPC support in Pact looks like
As suggested by @bootstraponline, we should look into https://github.com/grpc-ecosystem/grpc-gateway. Since grpc-gateway
converts to rest, it seems that some of the streaming services may not translate well. Additionally, this requires existence of protos and annotations.
Would be used in provider tests
grpc-gateway requires existence of proto files and annotations. We could generate the annotations semi automatically, first specifying the proto files to be included and methods for each associated rpc (see above). If that can be accomplished, then I think that we can still test via REST in the consumer side.