This directory contains a protoc plugin that generates an OpenAPI description for a REST API that corresponds to a Protocol Buffer service.
This project is a simplification of the google/gnostic project, dedicated to providing a simple version of the protoc-gen-openapi
Installation:
go install github.com/pubgo/protoc-gen-openapi@latest
Usage:
protoc sample.proto -I=. --openapi_out=.
This runs the plugin for a file named sample.proto
which
refers to additional .proto files in the same directory as
sample.proto
. Output is written to the current directory.
version
: version number text, e.g. 1.2.3- default:
0.0.1
- default:
title
: name of the API- default: empty string or service name if there is only one service
description
: description of the API- default: empty string or service description if there is only one service
naming
: naming convention. Use "proto" for passing names directly from the proto files- default:
json
json
: will turn fieldupdated_at
toupdatedAt
proto
: keep fieldupdated_at
as it is
- default:
fq_schema_naming
: schema naming convention. If "true", generates fully-qualified schema names by prefixing them with the proto message package name- default: false
false
: keep messageBook
as it istrue
: turn messageBook
togoogle.example.library.v1.Book
, it is useful when there are same named message in different package
enum_type
: type for enum serialization. Use "string" for string-based serialization- default:
integer
integer
: setting type tointeger
schema: type: integer format: enum
string
: setting type tostring
, and list available values inenum
schema: enum: - UNKNOWN_KIND - KIND_1 - KIND_2 type: string format: enum
- default:
depth
: depth of recursion for circular messages- default: 2, this depth only used in query parameters, usually 2 is enough
default_response
: add default response. If "true", automatically adds a default response to operations which use the google.rpc.Status message. Useful if you use envoy or grpc-gateway to transcode as they use this type for their default error responses.- default: true, this option will add this default response for each method as following:
default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/google.rpc.Status'
- default: true, this option will add this default response for each method as following: