peridot/vendor/github.com/gogo/status/README.md
2022-07-07 22:13:21 +02:00

48 lines
1.3 KiB
Markdown

# Status
This is a convenience package for users of `gogo/protobuf` to be able to use
their `gogo/protobuf` generated message easily and transparently with the
gRPC status error structure.
It requires [Go gRPC version 1.11](https://github.com/grpc/grpc-go/releases/tag/v1.11.0)
or above to successfully transmit statuses over the gRPC transport.
## Use
Use as you would the normal `grpc/status` package:
```go
return status.Error(codes.NotFound, "no such user")
```
```go
st := status.New(codes.FailedPrecondition, "wrong user role")
detSt, err := st.WithDetails(&rpc.BadRequest{
FieldViolations: []*rpc.BadRequest_FieldViolation{
{
Field: "role",
Description: "The first user created must have the role of an ADMIN",
},
},
})
if err == nil {
return detSt.Err()
}
return st.Err()
```
## License
The code is 95% copied from the official gRPC status package, so the gRPC
License applies.
### Changes
The changes applied include changing the use of the
`golang/protobuf` packages to `gogo/protobuf`, and changing the
generated files from `google.golang.org/genproto/googleapis` to
`github.com/gogo/googleapis/`.
We've also created an implicit interface fulfilled by all `gogo/status`
errors, for use with `grpc/status` and the gRPC runtime libraries.