https://github.com/rudeigerc/go-grpc-protovalidate
A gRPC Go middleware for validating messages via bufbuild/protovalidate following Google's API Improvement Proposals AIP-193
https://github.com/rudeigerc/go-grpc-protovalidate
go-grpc go-grpc-middleware protobuf protovalidate
Last synced: 11 months ago
JSON representation
A gRPC Go middleware for validating messages via bufbuild/protovalidate following Google's API Improvement Proposals AIP-193
- Host: GitHub
- URL: https://github.com/rudeigerc/go-grpc-protovalidate
- Owner: rudeigerc
- License: apache-2.0
- Created: 2024-09-18T14:05:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-18T14:10:23.000Z (almost 2 years ago)
- Last Synced: 2025-03-13T12:38:55.872Z (over 1 year ago)
- Topics: go-grpc, go-grpc-middleware, protobuf, protovalidate
- Language: Go
- Homepage: https://pkg.go.dev/github.com/rudeigerc/go-grpc-protovalidate
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-grpc-protovalidate
> [!CAUTION]
> WORK IN PROGRESS
A [gRPC Go](https://github.com/grpc/grpc-go) middleware for validating messages via [bufbuild/protovalidate](https://github.com/bufbuild/protovalidate) following Google's API Improvement Proposals [AIP-193](https://google.aip.dev/193).
## Installation
```shell
go get github.com/rudeigerc/go-grpc-protovalidate
```
## Usage
```go
package main
import (
"log"
"github.com/bufbuild/protovalidate-go"
go_grpc_protovalidate "github.com/rudeigerc/go-grpc-protovalidate"
"google.golang.org/grpc"
)
func main() {
validator, err := protovalidate.New()
if err != nil {
log.Fatalf("failed to create validator: %v", err)
}
s := grpc.NewServer(
grpc.ChainUnaryInterceptor(
go_grpc_protovalidate.UnaryServerInterceptor(go_grpc_protovalidate.WithValidator(validator)),
),
grpc.ChainStreamInterceptor(
go_grpc_protovalidate.StreamServerInterceptor(go_grpc_protovalidate.WithValidator(validator)),
),
)
}
```
## References
- [bufbuild/protovalidate](https://github.com/bufbuild/protovalidate)
- [grpc-ecosystem/go-grpc-middleware/interceptors/protovalidate](https://github.com/grpc-ecosystem/go-grpc-middleware/tree/main/interceptors/protovalidate)
- [Errors | Cloud API Design Guide | Google Cloud](https://cloud.google.com/apis/design/errors)
- [AIP-193: Errors](https://google.aip.dev/193)
## License
Apache 2.0