gRPC / Protobuf
This Handler allows you to load gRPC definition files (.proto
).
npm i @graphql-mesh/grpc
Now, you can use it directly in your Mesh config file:
.meshrc.yaml
sources:
- name: MyGrpcApi
handler:
grpc:
endpoint: localhost:50051
source: grpc/proto/Example.proto
💡
You can check out our example that uses gRPC Handler. Click here to open the example on GitHub
Use Reflection instead of proto files
If you have configured reflection in your gRPC server, you don't need to provide source
.
.meshrc.yaml
sources:
- name: gRPC Example
handler:
grpc:
endpoint: localhost:50051
💡
You can check out our example that uses gRPC Handler with reflection. Click here to open the example on GitHub
Custom Metadata for Authorization
Here you can use metaData
field to pass some custom metadata from the context.
.meshrc.yaml
sources:
- name: MyGrpcApi
handler:
grpc:
endpoint: localhost:50051
source: grpc/proto/Example.proto
metaData:
authorization: 'Bearer {context.headers['x-my-token']}'
someStaticValue: 'MyStaticValue'
Config API Reference
endpoint
(type:String
, required) - gRPC Endpointsource
- - gRPC Proto file that contains your protobuf schema OR Use a binary-encoded or JSON file descriptor set file One of:object
:file
(type:String
, required)load
(type:Object
):defaults
(type:Boolean
)includeDirs
(type:Array of String
)
String
requestTimeout
(type:Int
) - Request timeout in milliseconds Default: 200000credentialsSsl
(type:Object
) - SSL Credentials:rootCA
(type:String
)certChain
(type:String
)privateKey
(type:String
)
useHTTPS
(type:Boolean
) - Use https instead of http for gRPC connectionmetaData
(type:JSON
) - MetaDataprefixQueryMethod
(type:Array of String
) - prefix to collect Query method default: list, getschemaHeaders
(type:JSON
)