Extensible Service Proxy (ESP) to transcode gRPC -> REST?

118 views
Skip to first unread message

matti....@qvik.fi

unread,
Apr 23, 2017, 10:48:18 AM4/23/17
to Google Cloud Endpoints
I was playing around with Cloud Endpoints & ESP setup on Kubernetes the other day. While I was able to implement a gRPC backend and call with REST and gRPC at the same time, I was not able to do the same for a REST backend - I was only able to call it with a REST client. Is there no transcoding support gRPC -> REST? Is this because of REST's limitations in regard to bidirectional streaming and such? 

I would like to expose old (and perhaps sometimes, even new?) REST APIs over the wire as gRPC, but cannot find a way to do this with Endpoints. Is there one?

BR, 

Matti

Dan Ciruli

unread,
Apr 24, 2017, 1:38:44 PM4/24/17
to Google Cloud Endpoints, matti....@qvik.fi
Hi, Matti -

Correct. While we will allow you to call a gRPC backend with either REST or gRPC, we do not have any facility for calling a REST backend via gRPC.

Can I ask what your desired use is? And tell me a bit about your clients -- who writes them (you, other people at your company, customers/partners), what platforms are you calling from, and what language(s) you're writing your backends in?

Thanks!

DC

matti dahlbom

unread,
Apr 25, 2017, 3:54:21 AM4/25/17
to Dan Ciruli, Google Cloud Endpoints
On Mon, Apr 24, 2017 at 8:38 PM, Dan Ciruli <cir...@google.com> wrote:
Can I ask what your desired use is? And tell me a bit about your clients -- who writes them (you, other people at your company, customers/partners), what platforms are you calling from, and what language(s) you're writing your backends in?

Well, since gRPC is lighter on the wire it would make sense to always use that over the internet connection and then have either a REST or a gRPC backend. Of  course for anything new we write, we can always go for gRPC (although REST is quite much nicer to debug manually using a REST client) backends but in case I'd like to provide a gRPC connection to existing REST backends, this is now not possible via Endpoints. 

We have backends written both by our partners and us. We are calling them mostly from mobile / web clients as well as other microservices. Our main programming languages for backends are Node.js and Python.

- Matti


--
Matti Dahlbom | Lead Architect, Qvik Oy 
matti....@qvik.fi | +358405216859
Reply all
Reply to author
Forward
0 new messages