#utoipa #prost #protobuf #open-api #serialization #compiler-plugin

bin+lib protoc-gen-prost-utoipa

提供 utoipa 模式定义的 Protocol Buffers 编译器插件

1 个不稳定版本

0.1.0 2023年4月6日

#6 in #utoipa

Apache-2.0

12KB
186

protoc-gen-prost-utoipa

A protoc 插件,用于从 proto 文件生成 utoipa 模式实现。

当在仅使用 Rust 代码的项目中使用时,使用 Prost! 生成 protobuf 定义的首选机制是在 build.rs 文件中使用 prost-build,然后使用 prutoipa-build 生成 utoipa 模式。然而,在多语言环境中,利用 Protocol Buffers 生态系统中的通用工具可能更有优势。常用的工具之一是 buf,它简化了代码生成过程,并包括一些有用的功能,例如代码检查、包管理和破坏性变更检测。

使用 protocprotoc-gen-prost

首先,确保 protoc-gen-prost-utoipa 已安装在你的 $PATH 目录中。

为了更容易地处理由 prost 生成的基定义,此插件假定它是在与 protoc-gen-prost 相同的 protoc 调用中运行的链式模式。这可以通过在同一个 protoc 调用中指定多个插件来实现,如下所示

protoc -I proto proto/greeter/v1/greeter.proto \
    --prost_out=proto/gen \
    --prost-utoipa_out=proto/gen

作为单独的调用运行时,protoc 不会意识到由 protoc-gen-prost 生成的基定义。在这种情况下,需要使用 no_include 指令,并且需要单独包含生成的 .utoipa.rs 文件。

protoc -I proto proto/greeter/v1/greeter.proto \
    --prost_out=proto/gen \

protoc -I proto proto/greeter/v1/greeter.proto \
    --prost-utoipa_out=proto/gen \
    --prost-utoipa_opt=no_include

使用 buf

尚未...

依赖项

~9–19MB
~269K SLoC