I have mixed feelings about gRPC-Web, and welcome alternatives. Setting up a proxy with any sort of non-standard config can be a pain, gRPC-Web doesn't translate outbound request data for you which can get ugly[0], and your service bindings may or may not try to cast strings to JS number types which silently fail if over MAX_SAFE_INTEGER.
[0] Instead of passing in a plain object, you build it as such:
const userLookup = new UserLookupRequest();
const idField = new UserID();
idField.setValue(29);
userLookup.setId(idField);
UserService.findUser(userLookup);
[0] Instead of passing in a plain object, you build it as such:
The metadata field doesn't seem to mind though...