flatbuffers/grpc/examples/README.md

35 lines
1020 B
Markdown
Raw Normal View History

## Languages known issues
### Python
- Assert the type required in your server/client since python is able to receive `Bytes array` or `utf8 strings`.
```python
def SayHello(self, request, context):
# request might be a byte array or a utf8 string
r = HelloRequest.HelloRequest().GetRootAs(request, 0)
reply = "Unknown"
if r.Name():
reply = r.Name()
# Issues might happen if type checking isnt present.
# thus encoding it as a `reply.decode('UTF-8')`
return build_reply("welcome " + reply.decode('UTF-8'))
```
This can be prevented by making sure all the requests coming to/from python are `Bytes array`
```python
def say_hello(stub, builder):
hello_request = bytes(builder.Output())
reply = stub.SayHello(hello_request)
r = HelloReply.HelloReply.GetRootAs(reply)
print(r.Message())
```
### Go
- Always requires the `content-type` of the payload to be set to `application/grpc+flatbuffers`
example: `.SayHello(ctx, b, grpc.CallContentSubtype("flatbuffers"))`