Caching Proxy - Справка

Обработка запросов API

API - Обзор

Интерфейс API позволяет расширить основные функции сервера proxy. Написание модулей (создаваемых пользователем расширений приложений) дает возможность выполнять дополнительные операции, например:

Основной процесс обработки запросов на сервере

Основной процесс обработки запросов на сервере можно разбить на отдельные этапы в зависимости от типа обработки, выполняемой сервером на каждой стадии. Каждый этап содержит фазу, когда может выполняться заданная часть программы. Путем добавления директив API в файл конфигурации вы указываете, какие функции приложений должен вызывать сервер на том или ином этапе. На этапе обработки запроса вы можете вызвать несколько функций приложений, добавив несколько директив API для этого этапа.

Программа, создаваемая в результате компиляции модуля, хранится в файле с расширением .DLL, .so или .o, в зависимости от операционной системы. Когда сервер поэтапно выполняет запрос, на каждом этапе он вызывает соответствующие функции приложений модуля до тех пор, пока какая-либо из функций не сообщит о том, что она обработала запрос. Если на данном этапе необходимо вызвать несколько функций модуля, то они вызываются в том порядке, в котором они указаны в файле конфигурации.

Если запрос не удалось выполнить с помощью функции приложения (функция приложения не указана, либо она возвратила код HTTP_NOACTION), сервер выполняет действие по умолчанию на этом этапе. Примечание: сказанное справедливо для всех этапов, кроме этапа Service, на котором действие по умолчанию не предусмотрено.

Директивы конфигурации API

Для каждого этапа процесса обработки запросов существует директива конфигурации, позволяющая задать пользовательскую функцию приложения, которую нужно вызывать и выполнять на этом этапе.

Форматы директив API

ServerInit /путь/файл:имя_функции
PreExit /путь/файл:имя_функции
Authentication тип /путь/файл:имя_функции
NameTrans /URL /путь/файл:имя_функции
Authorization /URL /путь/файл:имя_функции
ObjectType /URL /путь/файл:имя_функции
PostAuth /путь/файл:имя_функции
Service /URL /путь/файл:имя_функции
Transmogrifier /путь/файл:имя_функции_открытия:имя_функции_записи:имя_функции_закрытия:имя_функции_ошибки
Log /URL /путь/файл:имя_функции
Error /URL /путь/файл:имя_функции
PostExit /путь/файл:имя_функции
ServerTerm /путь/файл:имя_функции
Midnight /путь/файл:имя_функции
PICSDBLookup /путь/файл:имя_функции
GC Advisor /путь/файл:имя_функции
Proxy Advisor /путь/файл:имя_функции

Переменные директив API

Переменные этих директив имеют следующий смысл:
тип
(Используется только с директивой Authentication.) Этот параметр определяет, будет ли вызываться функция приложения. Допустимы следующие значения:
Basic
Функция приложения вызывается только для основных запросов на идентификацию
*
Функция приложения для всех запросов

/URL
Это значение определяет, для каких запросов URL будет вызываться функция приложения. Спецификации URL в этих директивах виртуальные (без названия протокола), но начинаются с косой черты (/). Например, /www.ibm.com допустимо, а http://www.ibm.com - нет. Допустимы следующие значения:
Конкретный URL
Функция приложения вызывается только для этого URL
Шаблон URL
Функция приложения вызывается только для URL, отвечающих шаблону. Шаблон можно задать как /URL*, /* или *.

Примечание: Шаблон URL обязателен в директиве Service, если вы хотите выполнять преобразование путей.


/путь/файл
Полное имя файла откомпилированной программы
:имя_функции
Имя, которое вы присвоили функции приложения в программе. В директиве Transmogrifier необходимо указать имена функций открытия, записи и закрытия.

Связанная информация