gRPC is gaining traction due to its cross-platform, schema-driven interface design, efficiency, and use of HTTP/2. However, transitioning from REST to gRPC has some pain points due to missing alternatives for commonly-used tools. Sending free-form JSON over cURL does not work. There is no integration with Swagger/OpenAPI. Polished alternatives to GUIs like Postman or Swagger UI don't exist. Providing a REST interface over the gRPC services can solve these problems. We present a brokerless solution, using a Protobuf compiler plugin to generate a library of RESTful controllers with Swagger/OpenAPI documentation. This allows each microservice to expose both a REST and gRPC interface with no extra effort.
Roman Zimine is a software engineer at Turbonomic building a distributed, service-oriented containerize system for workload automation in hybrid cloud environments.