Interfejs API zapewnia możliwość rozszerzenia podstawowych funkcji serwera proxy. Tworząc wtyczki (rozszerzenia aplikacji przygotowywane przez użytkownika), można wykonywać przetwarzanie w dostosowany sposób, na przykład:
Podstawowy proces żądania serwera można podzielić na kroki na podstawie typu przetwarzania wykonywanego przez serwer w danej fazie. Każdy krok obejmuje moment, w którym można wykonać określoną część programu. Poprzez dodanie dyrektyw interfejsu API do pliku konfiguracyjnego można wskazać funkcje aplikacji, które powinny zostać wywołane przez serwer podczas określonego kroku. W czasie kroku procesu przetwarzania żądania można wywołać wiele funkcji aplikacji poprzez dołączenie kolejnych dyrektyw interfejsu API dla tego kroku.
Skompilowany program wtyczki ma postać pliku .DLL, .so lub .o w zależności od używanego systemu operacyjnego. Kiedy serwer przechodzi przez poszczególne kroki przetwarzania żądania, wywołuje funkcje aplikacji wtyczki powiązanej z każdym krokiem do momentu, gdy jedna z funkcji wskaże, że żądanie zostało obsłużone. Jeśli w danym kroku konieczne jest wywołanie kilku wtyczek, są one wywoływane zgodnie z ich kolejnością w pliku konfiguracyjnym.
Jeśli żądanie nie zostanie wykonane przez funkcję aplikacji (ponieważ nie określono funkcji aplikacji lub funkcja aplikacji dla danego kroku zwróciła kod HTTP_NOACTION), serwer wykonuje domyślną akcję dla tego kroku. Uwaga: Powyższy sposób postępowania dotyczy wszystkich kroków z wyjątkiem kroku Service, ponieważ ten krok nie ma akcji domyślnej.
Dla każdego kroku procesu żądania istnieje dyrektywa konfiguracyjna umożliwiająca określenie dostosowanej funkcji aplikacji, która ma zostać wywołana i wykonana w tym kroku.
Jeśli w jednym kroku przetwarzania wywoływanych jest wiele funkcji wtyczki, względna kolejność tych dyrektyw jest czasami ważna. Funkcje dla określonego kroku są wykonywane w kolejności, w jakiej zostały umieszczone.
Dyrektywy NameTrans i Service działają podobnie jak dyrektywa Exec i są zależne od jej obecności i położenia względem innych dyrektyw odwzorowywania w pliku konfiguracyjnym. Oznacza to, że serwer przetwarza dyrektywy Service, NameTrans, Map, Pass, Exec, Redirect i Fail zgodnie z ich kolejnością w pliku konfiguracyjnym. Kiedy serwer pomyślnie odwzoruje adres URL na plik, nie odczytuje ani nie przetwarza żadnych kolejnych dyrektyw dla tego żądania.
Uwaga: Dyrektywy NameTrans i Service, wraz z dyrektywami Map, Pass, Exec, Redirect i Fail można skonfigurować za pomocą formularza Routing żądań. W tym formularzu przed zmodyfikowaniem są wyświetlane ustawienia domyślne, które są przedstawiane w odpowiedniej kolejności dla tych dyrektyw.
ServerInit | /ścieżka/plik:nazwa_funkcji | ||
PreExit | /ścieżka/plik:nazwa_funkcji | ||
Uwierzytelnianie | typ | /ścieżka/plik:nazwa_funkcji | |
NameTrans | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
Autoryzacja | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
Typ obiektu | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
PostAuth | /ścieżka/plik:nazwa_funkcji | ||
Usługa | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
Transmogrifier | /ścieżka/plik:nazwa_funkcji_otwierania:nazwa_funkcji_zapisywania:nazwa_funkcji_zamykania:nazwa_funkcji_błędu | ||
Dziennik | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
Error | /adres_URL | /ścieżka/plik:nazwa_funkcji | |
PostExit | /ścieżka/plik:nazwa_funkcji | ||
ServerTerm | /ścieżka/plik:nazwa_funkcji | ||
Midnight | /ścieżka/plik:nazwa_funkcji | ||
PICSDBLookup | /ścieżka/plik:nazwa_funkcji | ||
GC Advisor | /ścieżka/plik:nazwa_funkcji | ||
Proxy Advisor | /ścieżka/plik:nazwa_funkcji |
Uwaga: Jeśli ma być wykonywane tłumaczenie ścieżki, szablon adresu URL należy podać wraz z dyrektywą Service.