Docs
Source Handlers
gRPC / Protobuf

gRPC / Protobuf

image

This Handler allows you to load gRPC (opens in a new tab) definition files (.proto).

Terminal
yarn add @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 (opens in a new tab)

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 (opens in a new tab)

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 Endpoint
  • source - - 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: 200000
  • credentialsSsl (type: Object) - SSL Credentials:
    • rootCA (type: String)
    • certChain (type: String)
    • privateKey (type: String)
  • useHTTPS (type: Boolean) - Use https instead of http for gRPC connection
  • metaData (type: JSON) - MetaData
  • prefixQueryMethod (type: Array of String) - prefix to collect Query method default: list, get