Advanced gRPC Error Usage
https://jbrandhorst.com/post/grpc-errors/
Коротенькая статья о том, как с помощью пакета status добавлять произвольные метаданные к ошибкам. Это бывает очень удобно при разборе и обработке ошибок между сервисами.
Пример:
————
За ссылку спасибо @ekostogorov
#grpc #article
https://jbrandhorst.com/post/grpc-errors/
Коротенькая статья о том, как с помощью пакета status добавлять произвольные метаданные к ошибкам. Это бывает очень удобно при разборе и обработке ошибок между сервисами.
Пример:
st := status.New(codes.InvalidArgument, "invalid username")
desc := "The username must only contain alphanumeric characters"
v := &errdetails.BadRequest_FieldViolation{
Field: "username",
Description: desc,
}
br := &errdetails.BadRequest{}
br.FieldViolations = append(br.FieldViolations, v)
st, err := st.WithDetails(br)
if err != nil {
// If this errored, it will always error
// here, so better panic so we can figure
// out why than have this silently passing.
panic(fmt.Sprintf("Unexpected error attaching metadata: %v", err))
}
return st.Err()
————
За ссылку спасибо @ekostogorov
#grpc #article
Go Ahead
Advanced gRPC Error Usage
How to best handle errors in Go is a divisive issue, leading to opinion pieces by illustrious bloggers such as Dave Cheney, the commander himself Rob Pike as well as the official Go blog. I’m not going to tackle those opinions here, instead I’m going to talk…
👍9❤2
Если вам предстоит работать с проектами на gRPC, то этот гайд позволит в максимально сжатые сроки покрыть львинную долю того, чему необходимо научиться.
Он доступен в двух вариантах:
- Видео на YouTube
- Статья на Хабре
Сервис пишется с нуля, попутно затрагивается множество аспектов:
- Правильная архитектура проекта
- Как писать ProtoBuf контракты, генерировать по ним код
- Как полноценно тестировать свой сервис, написание функциональных тестов
- Как правильно работать с паролями и токенами авторизации
- Взаимодействие между сервисами
- Работа с миграциями
И многое другое.
#guide #grpc
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Пишем gRPC сервис на Go - Сервис авторизации / УЛЬТИМАТИВНЫЙ гайд
Пишем полноценный gRPC сервис с современной архитектурой. Также:
- Напишем контракт protobuf, разберемся с кодогенерацией
- Научимся работать с ошибками и логами
- Настроим миграции для БД
- Настроим автоматический деплой через GitHub Actions, напишем для…
- Напишем контракт protobuf, разберемся с кодогенерацией
- Научимся работать с ошибками и логами
- Настроим миграции для БД
- Настроим автоматический деплой через GitHub Actions, напишем для…
21🔥54👍18❤8🫡1