登录
首页 >  Golang >  Go问答

返回gRPC状态码表示成功

来源:stackoverflow

时间:2024-02-06 10:45:22 413浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《返回gRPC状态码表示成功》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我有一个 grpc 处理程序 Something(ctx context.Context, request *protocol.Something) (*pb.Test, error)

我返回类似 return nil, status.Error(codes.InvalidArgument, "something bad") 的错误

如果成功的话。我总是返回 nil return 测试,nil,尽管有代码 0。成功后是否必须返回代码? return 测试,status.New(codes.OK, "OK")


正确答案


per doc - 返回代码 0 表示 不是错误;成功返回。

Code Number Description
OK 0 Not an error; returned on success.

通过return测试,nil,错误中的nil表示没有错误,成功则返回ok

// ok is returned on success.
    ok code = 0

正如您在问题中提到的,return测试,status.new(codes.ok, "ok"),实际上,status.New()只是返回status而不是error,它可能在函数something中失败。

您可以使用 status.Error(codes.OK, "OK") 来返回 error。但是,如果传入 codes.ok,则返回 nil。与直接返回 nil 的行为相同。

源代码

// error returns an error representing c and msg.  if c is ok, returns nil.
func error(c codes.code, msg string) error {
    return new(c, msg).err()
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>