Skip to content

Plugin protoc-gen-gql

protoc-gen-gql plugin will generate graphql files with extension .graphqls rather than go code which means it can be further used for any other language or framework.

⚠ The GraphQL objects will only be generated for the gRPC messages of other types that are used in a service either as a input value or a return value (For details check #1)

Install

go install github.com/danielvladco/go-proto-gql/protoc-gen-gql@latest

The protoc compiler expects to find plugins named proto-gen-<PLUGIN_NAME> on the execution $PATH.

So first add golang bin directory to the path if it's not already added (also add it to .zshrc or ~/.bash_profile depending on the OS you use):

export PATH=${PATH}:$(go env GOPATH)/bin

Usage

Run the protoc command with the arguments for the installed plugin:

Like this:

protoc --gql_out=<ADDITIONAL_ARGUMENTS>:<PATH> -I=./api -I=. ./example/codegen/api/pb/*.proto

Where ADDITIONAL_ARGUMENTS may be provided in the form of key=value separated by a comma.

Possible additional arguments: - svc bool - Use service annotations for nodes corresponding to a GRPC call. - merge bool - Merge all the proto files found in one directory into one graphql file. - ext string - Extension of the graphql file, Default: '.graphql' (default "graphql").

Example

protoc --gql_out=svc=true:. -I=./api -I=. ./example/codegen/api/pb/*.proto