Socket
Socket
Sign inDemoInstall

github.com/gogo/status

Package Overview
Dependencies
5
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    github.com/gogo/status

Package status implements errors returned by gRPC. These errors are serialized and transmitted on the wire between server and client, and allow for additional data to be transmitted via the Details field in the status proto. gRPC service handlers should return an error created by this package, and gRPC clients should expect a corresponding error to be returned from the RPC call. This package upholds the invariants that a non-nil error may not contain an OK code, and an OK code must result in a nil error.


Version published

Readme

Source

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 or above to successfully transmit statuses over the gRPC transport.

Use

Use as you would the normal grpc/status package:

return status.Error(codes.NotFound, "no such user")
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.

FAQs

Last updated on 23 Apr 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc