Skip to content

v0.3.1

Choose a tag to compare

@slipynil slipynil released this 26 Apr 21:02
· 16 commits to master since this release
v0.3.1
12e9296

🎯 Основные улучшения

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