Http (TypeHttp)

Низкоуровневый интерфейс транспорта, возвращаемый b24.getHttpClient(version). Прямой доступ к axios-клиентам, параметрам ограничений, статистике и сбросу.
Обычно вы используете actions.v2.* / actions.v3.* и никогда не трогаете TypeHttp напрямую. Обращайтесь к нему, когда нужны сырые call / batch, тонкая настройка лимитера или runtime-статистика.

TypeHttp — это контракт, реализуемый HttpV2 и HttpV3. Каждый B24Frame / B24Hook / B24OAuth владеет одним экземпляром на каждую версию REST API. Доступ к ним:

import { ApiVersion } from '@bitrix24/b24jssdk'

const v2 = $b24.getHttpClient(ApiVersion.v2)
const v3 = $b24.getHttpClient(ApiVersion.v3)

Свойства

СвойствоТипОписание
apiVersionApiVersionApiVersion.v2 или ApiVersion.v3.
ajaxClientAxiosInstanceНижележащий экземпляр axios. Переиспользуйте его для не-REST-запросов к тому же origin.

Логгер

setLogger(logger: LoggerInterface): void
getLogger(): LoggerInterface

Позволяет подменить отладочный логгер в одном клиенте, не затрагивая остальной SDK. См. Логгер.

Вызов REST

call

call<T = unknown>(
  method: string,
  params: TypeCallParams,
  requestId?: string
): Promise<AjaxResult<T>>

Низкоуровневый вызов одного метода. Хелперы более высокого уровня (actions.v2.call.make, callList, fetchList) строятся поверх него.

batch

batch<T = unknown>(
  calls: BatchCommandsArrayUniversal | BatchCommandsObjectUniversal | BatchNamedCommandsUniversal,
  options?: ICallBatchOptions
): Promise<Result<ICallBatchResult<T>>>

Низкоуровневый батч-вызов. Принимаются три формы ввода:

  • Массив кортежей: [ [method, params], [method, params] ]
  • Массив объектов: [ { method, params, as?, parallel? }, ... ]
  • Именованная карта: { key1: { method, params }, key2: [method, params] }

В большинстве случаев вызывайте actions.v2.batch.make / actions.v3.batch.make, которые берут на себя распаковку ответа и returnAjaxResult.

Конфигурация лимитера

setRestrictionManagerParams(params: RestrictionParams): Promise<void>
getRestrictionManagerParams(): RestrictionParams

Заменяет или читает конфигурацию rate limit / operating limit / адаптивной задержки на этом клиенте. Чтобы изменить v2 и v3 сразу, предпочитайте b24.setRestrictionManagerParams(...).

Форму параметров и пресеты (ParamsFactory.getDefault(), getBatchProcessing(), getRealtime(), fromTariffPlan()) см. в Лимитеры.

Статистика

getStats(): RestrictionManagerStats & {
  adaptiveDelayAvg: number
  errorCounts: Record<string, number>
  totalRequests: number
  successfulRequests: number
  failedRequests: number
  totalDuration: number
  byMethod: Map<string, { count: number, totalDuration: number }>
  lastErrors: { method: string, error: string, timestamp: number }[]
}

Снимок состояния лимитера + счётчики по методам. Полезно для дашбордов. Полную разбивку см. в Лимитеры → Мониторинг.

Сброс

reset(): Promise<void>

Очищает состояние лимитера и статистику. Типичное применение — после реагирования на инцидент или в долгоживущих демонах, которым нужно чистое окно.

Предупреждение о клиентской стороне

setClientSideWarning(value: boolean, message: string): void

B24Hook и B24OAuth включают runtime-предупреждение при использовании в браузерном окружении (их секреты никогда не должны попадать на клиент). Переключайте его из родительского класса через b24.offClientSideWarning(); этот метод — нижележащий примитив.