v0Source HandlersgRPC / Protobuf
⚠️
This is the documentation for the old GraphQL Mesh version v0. We recommend upgrading to the latest GraphQL Mesh version v1.

Migrate to GraphQL Mesh v1

gRPC / Protobuf

image

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 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
  • schemaHeaders (type: JSON)