英文:
Setting status code in grpc server method call
问题
在golang中,你可以使用google.golang.org/grpc/status
包来设置grpc方法的响应状态码。以下是一个示例:
import (
"google.golang.org/grpc/status"
"google.golang.org/grpc/codes"
)
func (i *ItemServerImp) Register(ct context.Context, it *item.RegisterItemRequest) (*item.RegisterItemReply, error) {
// 根据输入或某些处理逻辑设置响应状态码
if someCondition {
// 设置状态码为200
return nil, status.Error(codes.OK, "Success")
} else {
// 设置状态码为400
return nil, status.Error(codes.InvalidArgument, "Invalid argument")
}
}
在上面的示例中,我们使用status.Error
函数来创建一个带有指定状态码和错误消息的错误。codes
包中定义了一系列常用的状态码,你可以根据需要选择合适的状态码。
英文:
How do I set the response status code in a grpc method in golang. For example lets say I have the following grpc method
func (i *ItemServerImp) Register(ct context.Context, it *item.RegisterItemRequest) (*item.RegisterItemReply, error) {
}
How do I set the response status to 200 or a 400 based on the input or some processing. I had a look around and could not find a proper way to do this.
However I did find the following https://chromium.googlesource.com/external/github.com/grpc/grpc/+/refs/heads/chromium-deps/2016-07-27/doc/statuscodes.md which says the status code can be set.
答案1
得分: 5
你可以使用google.golang.org/grpc/status包来返回一个gRPC错误,示例如下:
return nil, status.Error(codes.InvalidArgument, "Incorrect request argument")
不同的状态码可以在google.golang.org/grpc/codes包中找到。
英文:
You can return a gRPC error using the google.golang.org/grpc/status package as follows:
return nil, status.Error(codes.InvalidArgument, "Incorrect request argument")
The different status codes are available in the google.golang.org/grpc/codes package.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论