repository с ошибкой ErrNotFound и использовать её в любой реализации репозитория?
не типизированные ошибки, сложно обработать
Тогда мы столкнёмся с тем, что какую-то конкретную ошибку в транспорте не сможем обработать. О чём я говорю - когда мне в транспорт возвращается ошибка, я вызываю функцию setErrResponse(err error), передаю туда ошибку, делаю по ней switch, и перебираю все существующие ошибки. В случае с ErrUserNotFound я могу вернуть что угодно: case domain.ErrUserNotFound: c.AbortWithStatusJSON(http.StatusNotFound, gin.H{"message": "user not found"}) А в случае с ErrNotFound мне придётся либо просто возвращать "not found", что не очень информативно case domain.ErrNotFound: c.AbortWithStatusJSON(http.StatusNotFound, gin.H{"message": "not found"}) Либо придётся выводить текст ошибки, что не есть гуд case domain.ErrNotFound: c.AbortWithStatusJSON(http.StatusNotFound, gin.H{"message": err.Error()})
Обсуждают сегодня