protoc-gen-openapi怎么自动生成grpc中proto文件的openapi.yaml
时间: 2024-12-17 12:41:19 浏览: 4
`protoc-gen-openapi` 是一个 Google Protocol Buffers (gRPC) 和 OpenAPI 的生成工具插件,它能够将 `.proto` 文件(protobuf 格式的服务和消息定义)转换成 OpenAPI规范的 `yaml` 或 `json` 描述文件,也就是 `openapi.yaml`。这个工具允许你在设计 gRPC API 的同时,也能方便地生成开放API文档。
以下是使用 protoc-gen-openapi 自动化生成 `openapi.yaml` 的步骤:
1. **安装插件**:首先确保你已经安装了 `protoc`(Protocol Compiler),它是编译 `.proto` 文件的基本工具。然后从 GitHub 获取 `protoc-gen-openapigen`,通常需要将其添加到项目依赖或全局路径下。
```bash
# 如果还没有安装
git clone https://github.com/grpc-ecosystem/grpc-gateway.git
cd grpc-gateway/third_party/protoc-gen-openapigen
make
```
2. **生成插件**:在安装目录下,找到 `gen_openapigen.py` 并将其路径加入到 `protoc` 的搜索路径中,通常是通过环境变量 `GRPC_GATEWAY_PROTOBUF_PLUGIN` 设置。
3. **运行命令**:使用 `protoc` 和新生成的插件,指定你想要转换的 `.proto` 文件,并指定输出目录和 OpenAPI配置选项,例如:
```bash
protoc -I=your_proto_directory --openapigen_out=grpc_api/openapi --openapigen_opt=host=http://your-service.example.com your_proto_file.proto
```
这里 `--openapigen_opt` 参数可以定制更多 OpenAPI配置,如标题、描述、版本等。
4. **查看结果**:在指定的输出目录 `grpc_api/openapi` 下,你会找到生成的 `openapi.yaml` 文件,这就是你的 gRPC API 的 OpenAPI文档。
阅读全文