A interface do API permite que você amplie as funções básicas do servidor proxy. Gravando plug-ins (extensões de aplicativos que você cria) é possível executar processamentos personalizados como os seguintes:
O processo básico de pedidos do servidor pode ser dividido em etapas, com base no tipo de processamento executado pelo servidor durante cada fase. Cada etapa inclui uma conjuntura na qual uma parte especificada de seu programa pode executar. Ao incluir as diretrizes do API no arquivo de configuraçãovocê indica quais das funções do aplicativo você deseja que o servidor chame durante uma determinada etapa. Várias funções de aplicativos podem ser chamadas durante uma etapa de processo do pedido incluindo mais que uma das diretrizes do API.
O programa plug-in compilado é um arquivo .DLL, .so ou .o, dependendo do seu sistema operacional. Conforme o servidor continua pelas etapas do processo de pedido, ele chama as funções de aplicativos do plug-in associadas a cada etapa, até que uma das funções indique que tratou do pedido. Se mais de uma função de plug-in for chamada de uma determinada etapa, elas serão chamadas na ordem em que aparecerem no arquivo de configuração.
Se o pedido não for concluído por uma função do aplicativo (se a função do aplicativo não tiver sido especificada ou se a função do aplicativo dessa etapa retornar o código HTTP_NOACTION), o servidor executará sua ação padrão para a etapa. Nota: Isso ocorre para todas as etapas, exceto para a etapa Serviço, que não tem uma ação padrão.
Para cada etapa no processo de pedido existe uma diretriz de configuração que permite especificar uma função personalizada do aplicativo a ser chamada e executada durante essa etapa.
Se houver várias funções plug-in chamadas de uma etapa de processamento, a ordem relativa dessas diretrizes algumas vezes é importante. Dentro de uma etapa, as funções serão executadas na ordem em que estão listadas.
As diretrizes NameTrans e Service funcionam como a diretriz Exec e dependem de sua ocorrência e posicionamento em relação a outras diretrizes de mapeamento, dentro do arquivo de configuração. Isso significa que o servidor processa as diretrizes Service, NameTrans, Map, Pass, Exec, Redirect e Fail em sua ordem seqüencial no arquivo de configuração. Quando uma URL for mapeada com êxito para um arquivo, as próximas diretrizes para esse pedido não serão lidas ou processadas.
Nota: As diretrizes NameTrans e Service, juntamente com Map, Pass, Exec, Redirect e Fail, podem ser configuradas utilizando o formulário Request Routing. Antes de ser modificado, esse formulário exibe definições padrão que aparecem na ordem apropriada para as diretrizes.
ServerInit | /path/file:function_name | ||
PreExit | /path/file:function_name | ||
Authentication | type | /path/file:function_name | |
NameTrans | /URL | /path/file:function_name | |
Authorization | /URL | /path/file:function_name | |
ObjectType | /URL | /path/file:function_name | |
PostAuth | /path/file:function_name | ||
Service | /URL | /path/file:function_name | |
Transmogrifier | /path/file:open_function_name:write_function_name:close_function_name:error_function_name | ||
Log | /URL | /path/file:function_name | |
Erro | /URL | /path/file:function_name | |
PostExit | /path/file:function_name | ||
ServerTerm | /path/file:function_name | ||
Midnight | /path/file:function_name | ||
PICSDBLookup | /path/file:function_name | ||
GC Advisor | /path/file:function_name | ||
Proxy Advisor | /path/file:function_name |
Nota: Um modelo de URL será obrigatório com a diretriz Service se você desejar que ocorra a conversão de caminho.