What's this for?

protoc-gen-openapi is a plugin for the Google protocol buffer compiler to generate openAPI V3 spec for any given input protobuf. It runs as a protoc-gen- binary that the protobuf compiler infers from the openapi_out flag.

Build protoc-gen-openapi

protoc-gen-openapi is written in Go, so ensure that is installed on your system. You can follow the instructions on the golang website or on Debian or Ubuntu, you can install it from the package manager:

sudo apt-get install -y golang

To build, run the following command from this project directory:

make build

Then ensure the resulting protoc-gen-openapi binary is in your PATH. A recommended location is $HOME/bin:

cp _output/.bin/protoc-gen-openapi $HOME/bin

Since the following is often in your $HOME/.bashrc file:

export PATH=$HOME/bin:$PATH

Using protoc-gen-openapi

TIP

The -I option in protoc is useful when you need to specify proto paths for imports.

Then to generate the OpenAPI spec of the protobuf defined by file.proto, run

protoc --openapi_out=output_directory input_directory/file.proto

With that input, the output will be written to

output_directory/file.json

Other supported options are: