Справочник API
HTTPC предоставляет 26 функций параметров запроса, 5 предустановок конфигурации, 8 встроенных промежуточных модулей и полную поддержку скачивания файлов.
Основная архитектура
text
Пакет httpc
├── Интерфейс Client - основной клиент, поддерживающий все HTTP-методы
├── Интерфейс DomainClienter - клиент с областью видимости домена со встроенным управлением сессиями
├── Config - система конфигурации (таймауты/соединения/безопасность/повторы/промежуточное ПО)
├── RequestOption - 26 функций параметров запроса
├── MiddlewareFunc - цепочки промежуточного ПО
├── Result - результат ответа (включая метаданные запроса)
└── Функции пакета - используются без создания клиентаНавигация по модулям
Ядро
| Модуль | Описание |
|---|---|
| Функции пакета | Get/Post/Put/Patch/Delete и другие функции пакета, методы клиента и вспомогательные функции |
| Конфигурация | Структура Config, 5 предустановок, функции валидации и безопасность Cookie |
| Интерфейсы | Core интерфейсы Client, Doer, DomainClienter, RetryPolicy и др. |
| Result | Типы Result, RequestInfo, ResponseInfo, RequestMeta и все методы |
Запросы и ответы
| Модуль | Описание |
|---|---|
| Параметры запроса | 26 функций параметров WithXxx (заголовки, тело, аутентификация, Cookie, обратные вызовы и др.) |
| Промежуточное ПО | Композиция Chain, 8 встроенных фабрик промежуточного ПО и типы событий аудита |
| Типы ошибок | ClientError, 12 типов ErrorType и 13 переменных ошибок |
Расширенные возможности
| Модуль | Описание |
|---|---|
| Доменный клиент | Создание DomainClient, HTTP-методы, методы скачивания и правила склейки URL |
| Управление сессиями | Управление Cookie/заголовками SessionManager и проверка безопасности |
| Скачивание файлов | Функции скачивания, DownloadConfig, возобновление загрузки и защита безопасности |
| Константы и типы | Перечисление BodyKind, FormData/FileData и ключи контекста аудита |
Быстрый справочник
Создание клиента
go
client, err := httpc.New() // конфигурация по умолчанию
client, err := httpc.New(httpc.SecureConfig()) // безопасная предустановка
client, err := httpc.New(customConfig) // пользовательская конфигурацияОтправка запросов
go
// Функции пакета
result, err := httpc.Get(url, options...)
// Методы клиента
result, err := client.Get(url, options...)
// С контекстом
result, err := client.Request(ctx, "GET", url, options...)Обработка ответов
go
result.StatusCode() // код состояния
result.Body() // тело ответа (строка)
result.RawBody() // тело ответа (байты)
result.Unmarshal(&data) // разбор JSON
result.IsSuccess() // является ли 2xx
result.Meta.Duration // время выполнения запроса
result.Meta.Attempts // количество повторных попыток
defer httpc.ReleaseResult(result) // возврат в пул объектов