I am trying to accept a POST request from an external service, but the data is x-www-form-encoded
data. Our system is gRPC, but we use grpc-gateway to pass json rest requests.
If I add to following to my .proto
file
rpc Action(ActionRequest) returns (ActionResponse) {
option (google.api.http) = {
post: "/v1/action"
body: "*"
};
}
Any messages I try and create will fail with
`invalid character 'p' looking for beginning of value - Error: rpc error: code = InvalidArgument desc = invalid character 'p' looking for beginning of value`
This makes sense as 'p' is the first character of the x-www-form-encoded
data (payload is the object name).
It would so far appear I don't have access to the raw request body, and it seems it may be possible with a custom marshaller that feels like overkill, and probably out of scope.
However I cannot for the life of me see how to access this data. I have tried adding another proto from googleapis. However I have found the documentation for this aspect of gRPC difficult to follow and I may be doing it wrong.