# protoc-gen-go-fiber
`protoc-gen-go-fiber` 是一个用于生成基于 [Go](https://golang.org/) 和 [Fiber](https://gofiber.io/) 的 Web 服务的 Protocol Buffers (protobuf) 文件的插件。
## 安装
使用以下命令安装 `protoc-gen-go-fiber`:
```shell
go install github.com/gopkg-dev/protoc-gen-go-fiber@latest
```
## buf
在 `buf` 的配置文件 `buf.gen.yaml` 中,可以定义插件的生成行为。以下是一个示例 `buf.gen.yaml` 文件的内容:
```yaml
version: v1
managed:
enabled: false
plugins:
# 生成 Go 结构体代码
- name: go
out: gen
opt: paths=source_relative
# 生成 Fiber 服务代码
- name: go-fiber
out: gen
opt: paths=source_relative
# 生成 OpenAPI v3 代码
- plugin: buf.build/community/google-gnostic-openapi
out: .
opt:
- paths=source_relative
- fq_schema_naming=true
```
在上述示例中,我们配置了生成 Go 结构体代码、Fiber 服务代码和 OpenAPI v3 代码的插件。
## 参数校验
`protoc-gen-go-fiber` 支持使用 `protovalidate-go` 库进行参数校验。你可以在 [bufbuild/protovalidate-go](https://github.com/bufbuild/protovalidate-go) 上找到该库的详细信息和用法示例。
在你的 Protobuf 文件中定义消息结构时,可以使用 `protovalidate-go` 提供的注释来添加参数校验规则。以下是一个示例:
```protobuf
syntax = "proto3";
import "buf/validate/validate.proto";
message CreateUserRequest {
string name = 1 [(buf.validate.field).string = { min_len: 1, max_len: 100}];
int32 age = 2 [(buf.validate.field).int32.gt = 0];
}
```
生成的代码将自动应用参数校验规则,你无需手动处理参数校验,只需关注自己的业务逻辑。
## 文档生成
你可以使用 [google/gnostic](https://github.com/google/gnostic) 插件来生成文档。该插件可以根据你的 Protobuf 文件生成 OpenAPI 文档。
## 示例
你可以在 [protoc-gen-go-fiber 示例项目](https://github.com/gopkg-dev/protoc-gen-go-fiber/tree/main/example) 中找到一个简单的示例,演示了如何使用 `protoc-gen-go-fiber` 生成和使用基于 Fiber 的 API。你可以根据自己的需求进行更复杂的定制和扩展。
感谢你提供的具体修改建议!以下是根据你的要求更新的文档内容:
## 贡献
欢迎贡献代码、报告问题或提供改进建议!我们非常欢迎开发者的参与和贡献。
- 如果你遇到了问题或发现了 bug,请在 GitHub 存储库上提交问题,详细描述你遇到的情况和期望的行为。我们会尽力解决问题并改进插件。
- 如果你有改进建议或想要添加新的功能,请通过拉取请求的方式提交你的代码。在提交拉取请求之前,请确保你的代码符合项目的编码风格和质量要求,并附上适当的测试。
没有合适的资源?快使用搜索试试~ 我知道了~
一个用于生成基于 Go 和 Fiber 的 Web 服务的 protobuf 代码生成插件.zip
共52个文件
proto:25个
go:11个
yaml:4个
需积分: 5 0 下载量 104 浏览量
2024-05-23
17:16:31
上传
评论
收藏 158KB ZIP 举报
温馨提示
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
资源推荐
资源详情
资源评论
收起资源包目录
一个用于生成基于 Go 和 Fiber 的 Web 服务的 protobuf 代码生成插件.zip (52个子文件)
content
go.mod 462B
tags.go 2KB
template.tpl 2KB
go.sum 2KB
version.go 94B
Makefile 306B
template.go 1KB
.gitignore 3KB
fiber.go 10KB
example
go.mod 1KB
openapi.yaml 7KB
go.sum 150KB
proto
errors
wrap.go 1KB
types.go 3KB
errors.go 2KB
blog
blog.proto 2KB
buf.yaml 147B
buf.lock 844B
buf.gen.yaml 389B
third_party
buf
validate
BUILD.bazel 2KB
validate.proto 161KB
expression.proto 4KB
priv
BUILD.bazel 1KB
private.proto 1KB
gnostic
openapi
v2
openapiv2.proto 23KB
v3
openapiv3.proto 26KB
annotations.proto 2KB
discovery
v1
discovery.proto 8KB
google
api
client.proto 3KB
annotations.proto 1KB
field_behavior.proto 3KB
httpbody.proto 3KB
http.proto 15KB
protobuf
api.proto 8KB
duration.proto 5KB
source_context.proto 2KB
wrappers.proto 4KB
timestamp.proto 6KB
field_mask.proto 8KB
type.proto 6KB
struct.proto 4KB
empty.proto 2KB
descriptor.proto 39KB
compiler
plugin.proto 9KB
any.proto 6KB
README.md 14B
buf.work.yaml 34B
gen
blog
blog_http.pb.go 5KB
blog.pb.go 18KB
main.go 3KB
README.md 3KB
main.go 1KB
共 52 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3829
- 资源: 6140
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功