API 介面可讓您延伸 proxy 伺服器的基本功能。 您可以藉由撰寫 plug-in (您建立的應用程式擴充功能),執行下列的自訂處理程序:
基本伺服器要求處理根據階段期間所執行的處理伺服器類型,可以分成數個步驟。每個步驟包含程式的特定部份可以執行的接合點。藉著將 API 指引新增到您的配置檔中,您就能夠指出您想要伺服器在執行特定步驟期間呼叫的應用程式函數。您可以對要求處理步驟併入多個 API 指引,而在一個要求處理步驟期間,呼叫數個應用程式函數。
根據作業系統的不同,編譯 plug-in 程式為 .DLL、.so 或 .o 檔案。 當伺服器進行它的要求處理步驟時,它會呼叫每一個步驟相關的 plug-in 應用程式函數,直到其中一個函數指出已處理了要求為止。如果一個特定步驟呼叫了多個 plug-in 函數,則會依據它們在配置檔中的出現次序,依序呼叫它們。
如果應用程式函數未完成要求(您未指定應用程式函數或或該步驟的應用程式函數傳回了 HTTP_NOACTION 碼),則伺服器會對該步驟執行它的預設動作。 備註:這對於所有 Service 步驟以外的步驟都是正確的;Service 步驟無預設動作。
要求處理的每個步驟都有配置指引,可允許您在執行此步驟期間,指定所要呼叫及執行的自訂應用程式函數。
如果一個處理程序步驟呼叫多個 plug-in 函數,這些指引的相對順序有時很重要。在步驟中, 步驟內的函數將會以它們列出的順序來執行。
NameTrans 及 Service 指引的作用類似於 Exec 指引,且與配置檔內的發生時機及位置 (相對於其他對映指引) 有關。這表示伺服器會依 Service、NameTrans、Map、Pass、Exec、Redirect 及 Fail 指引在配置檔內的順序,來依序處理它們。 當成功地將 URL 對映到檔案時,伺服器就不會讀取或處理此要求後續的指引。
備註: 您可以使用 Request Routing 表格配置 NameTrans、Service、Map、Pass、Exec、Redirect 及 Fail 指引。 表格修改之前,會顯示預設設定,其中指引以適當順序排列。
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 | |
Error | /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 |
備註: 如果產生路徑轉換,URL 模版與 Service 指引是必需的。