Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Docs
Source Handlers
gRPC / Protobuf

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)