v0.3.1
🎯 Основные улучшения
Sentinel Errors для type-safe обработки ошибок:
• Теперь можно проверять ошибки через errors.Is() и errors.As() вместо парсинга строк
• Добавлено 9 валидационных ошибок (ErrEmptyPostID, ErrEmptyContent, ErrNilPoll и др.)
• Добавлено 5 API ошибок с маппингом HTTP статусов (ErrUnauthorized, ErrNotFound, ErrForbidden, ErrRateLimited, ErrServerError)
• APIError теперь поддерживает Unwrap() для работы с errors.Is()
Специализированные типы результатов:
• CreatedPost, CreatedPostWithPoll, CreatedPostWithRepost — точные типы вместо полного Post
• CreatedPostBase — базовая структура через композицию, устранение дублирования
• CreatedComment — специализированный тип для результата создания комментария
Валидация файлов:
• Валидация файлов при создании постов и комментариев (формат, количество)
• Новые ошибки: InvalidFileExtension, TooManyFiles, NoFileExtension
🔄 BREAKING CHANGES
Методы API теперь возвращают специализированные типы:
• Posts.Create(): *types.Post → *types.CreatedPost
• Posts.CreateWithPoll(): *types.Post → *types.CreatedPostWithPoll
• Posts.Repost(): *types.Post → *types.CreatedPostWithRepost
• Comments.CreateComment(): *types.CreateComment → *types.CreatedComment
• Comments.CreateReply(): *types.CreateComment → *types.CreatedComment
Полный пример: examples/errors/error_handling.go
🛠 Внутренние улучшения
• Все сообщения об ошибках переведены на английский (соответствие стандартам Go)
• Реорганизация пакета errors/ на 4 файла: API.go, transport.go, files.go, validation.go
• Улучшена обработка non-JSON ответов в CheckResponse()
• Обновлены все примеры: добавлен //go:build ignore, упрощена инициализация
🔗 Полный список изменений
См. CHANGELOG.md