Как обрабатывать ошибки в gRPC?

Middle
313 просмотров
AFK Offer AI

gRPC использует status codes вместо HTTP кодов: OK, NotFound, InvalidArgument, Internal, DeadlineExceeded и другие. Возвращаешь ошибку через status.Errorf(codes.NotFound, "user %d not found", id). Клиент проверяет: st, ok := status.FromError(err); st.Code() == codes.NotFound. Для дополнительных деталей — status.WithDetails() с protobuf сообщениями. Маппинг на HTTP: NotFound → 404, InvalidArgument → 400, Internal → 500. grpc-gateway делает маппинг автоматически. Не возвращай голый error — всегда оборачивай в status.

Следующий вопрос

Что такое NULLIF?