流程變數參考資料

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

本節提供流程變數的相關參考資訊。

Apigee Edge 定義下列流程變數:

apigee              loadbalancing        router
apiproxy            message              servicecallout
application         messageid            system
client              organization         target
current             proxy                variable
environment         request              virtualhost
error               response
is                  route

以下各節將分別說明這些變數。

apigee

提供政策執行時間相關資訊的輔助變數。

下表說明 apigee 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
apigee.metrics.policy.policy_name.timeTaken 整數 唯讀 以奈秒為單位,執行政策所需的時間。 政策

apiproxy

說明 API Proxy。

下表說明 apiproxy 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
apiproxy.name 字串 唯讀 API Proxy 的名稱。例如「My Proxy」。 Proxy 要求
apiproxy.revision 字串 唯讀 API Proxy 的修訂版本編號。例如「6」。 Proxy 要求

如要進一步瞭解如何使用 API Proxy,請參閱瞭解 API 和 API Proxy

application

application.basepath 屬性的容器。

下表說明 application 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
application.basepath 字串 唯讀 部署基礎路徑 (在 API 部署期間指定)。 Proxy 要求

client

將要求傳送至 Edge 路由器的應用程式或系統。

下表說明 client 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
client.cn 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中指定的一般名稱。

Proxy 要求
client.country 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中的國家/地區。

Proxy 要求
client.email.address 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中的電子郵件地址。

Proxy 要求
client.host 字串 唯讀

與 ProxyEndpoint 接收要求相關聯的 HTTP 主機 IP。

Proxy 要求
client.ip 字串 唯讀

傳送訊息至 Edge 路由器的用戶端或系統 IP 位址。舉例來說,這可能是原始用戶端 IP 或負載平衡器 IP。

Proxy 要求
client.locality 字串 唯讀

用戶端提供的 TLS/SSL 憑證中的縣市 (城市)。

Proxy 要求
client.organization 字串 唯讀 用戶端提供的 TLS/SSL 憑證中的機構。(不一定會等同於 Apigee Edge 上的機構)。 Proxy 要求
client.organization.unit 字串 唯讀

用戶端提供的 TLS/SSL 憑證中的機構單位。

Proxy 要求
client.port 整數 唯讀

與 ProxyEndpoint 的原始用戶端要求相關聯的 HTTP 通訊埠。

Proxy 要求
client.received.end.time 字串 唯讀

時間,以字串格式表示,Proxy 完成在 ProxyEndpoint 收到來源用戶端的要求。例如:世界標準時間 2013 年 8 月 21 日 19:16:47。

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應時間戳記值 1377112607413。

Proxy 要求
client.received.end.timestamp 長整數 唯讀

這是時間戳記值,用於指定 Proxy 何時在 ProxyEndpoint 收到來源用戶端傳出的要求。這個值是 64 位元 (長) 整數,內含自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

Proxy 要求
client.received.start.time 字串 唯讀

時間,以字串格式表示,Proxy 開始在 ProxyEndpoint 接收來源用戶端的要求。例如:世界標準時間 2013 年 8 月 21 日 19:16:47

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應時間戳記值 1377112607413。

Proxy 要求
client.received.start.timestamp 長整數 唯讀

時間戳記值,用於指定 Proxy 開始在 ProxyEndpoint 接收來源用戶端的要求的時間。這個值是 64 位元 (長) 整數,內含自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

Proxy 要求
client.scheme 字串 唯讀

根據用戶端應用程式用於傳送要求訊息的傳輸,傳回 http 或 https。

Proxy 要求
client.sent.end.time 字串 唯讀

時間 (以字串形式表示),Proxy 完成從 ProxyEndpoint 傳送至用戶端的回應。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個值是對應 32 位元 client.sent.end.timestamp 的字串表示法。例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值 1377112607413。

PostClientFlow
client.sent.end.timestamp 長整數 唯讀 這個時間戳記值會指定 ProxyEndpoint 完成將回應傳回至來源用戶端應用程式的時間。這個值是一個 64 位元 (長) 整數,內含自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。 PostClientFlow
client.sent.start.time 字串 唯讀 ProxyEndpoint 開始向來源用戶端應用程式傳回回應的時間,以字串形式表示,例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個值是對應 32 位元 client.sent.start.timestamp 的字串表示法。例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值 1377112607413。

PostClientFlow
client.sent.start.timestamp 長整數 唯讀 當 Proxy 開始透過 ProxyEndpoint 將回應傳送至用戶端時。這個值會以 64 位元 (長) 整數表示,包含自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。 PostClientFlow
client.ssl.enabled 字串 唯讀

如果 ProxyEndpoint 設定為 TLS/SSL,則為「true」;否則則為「false」。

Proxy 要求
client.state 字串 唯讀

用戶端提供的 TLS/SSL 憑證狀態,

Proxy 要求

current

包含目前的 API Proxy 流程的相關資訊。

下表說明 current 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
current.flow.name 字串 唯讀 目前正在執行的流程名稱 (例如「PreFlow」、「PostFlow」或條件式流程的名稱)。 Proxy 要求
current.flow.description 字串 唯讀 目前執行流程的說明。這與流程的 XML 設定中 <Description> 元素的值相同。 Proxy 要求

您可以在 Edge UI 的「Trace」檢視畫面中查看這些屬性。不過,根據預設,傳統版 UI 的追蹤記錄檢視畫面不會顯示這些屬性。

environment

environment.name 屬性的容器。

下表說明 environment 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
environment.name 字串 唯讀 交易執行環境的名稱。 Proxy 要求

error

代表錯誤流程中錯誤訊息的關聯物件。

下表說明 error 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
error message 讀取/寫入 message 類型的錯誤,這是錯誤流程中的內容比對物件。 錯誤
error.content 字串 讀取/寫入 錯誤內容。 錯誤
error.message 字串 唯讀

與錯誤相關聯的訊息,該錯誤只會在執行錯誤 Flow 之前提供。

錯誤
error.status.code 整數 唯讀

與錯誤相關聯的 HTTP 狀態碼。例如「400」。

錯誤
error.reason.phrase 字串 唯讀

與錯誤相關的原因詞組。例如:「錯誤的要求」。

錯誤
error.transport.message TransportMessage 唯讀

TransportMessage 類型的任何錯誤。

錯誤
error.state 整數 唯讀

發生錯誤的流程狀態。

錯誤
error.header.header_name 字串 讀取/寫入

取得或設定回應標頭。

錯誤

fault

這是在政策擲回錯誤時設為執行階段錯誤代碼的流程變數。 每項政策都有專屬的錯誤代碼值。

屬性 類型 讀取/寫入 說明 範圍開始
fault.fault_name 字串 唯讀 fault_name 是錯誤的名稱,如每個政策參考資料主題中的執行階段錯誤表格所述。 錯誤

is

is.error 屬性的容器。

下表說明 is 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
is.error 布林值 唯讀

錯誤標記。

Proxy 要求

loadbalancing

提供 TargetEndpoint 負載平衡狀態的相關資訊。

下表說明 loadbalancing 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
loadbalancing.failedservers 字串陣列 唯讀

在 TargetEndpoint 進行負載平衡期間,列出失敗的 TargetServer。

目標回覆內容
loadbalancing.isfallback 布林值 唯讀

如果已在 TargetEndpoint 進行負載平衡時叫用 TargetServer 啟用,則為「true」。

目標回覆內容
loadbalancing.targetserver 字串 唯讀

在 TargetEndpoint 進行負載平衡時叫用 TargetServer。只有在定義負載平衡器元素時已設定 <Path> 元素時,才需要設定。

目標回覆內容

message

內容相關物件,值與要求流程中的 request 相同,或在回應流程中與 response 相同,或在錯誤流程中傳回 error

下表說明 message 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
message message 讀取/寫入

內容相關物件,值與要求流程中的 request 或回應流程中的 response 相同,或在錯誤流程中與 error 相同。

Proxy 要求
message.content 字串 讀取/寫入

要求、回應或錯誤訊息的內容。

Proxy 要求
message.formparam.param_name 字串 讀取/寫入

指定表單參數的值。

Proxy 要求
message.formparam.param_name.
 values
集合 唯讀

訊息中所有指定表單參數的值。

Proxy 要求
message.formparam.param_name.
 values.count
整數 唯讀

訊息中特定表單參數值的計數。

Proxy 要求
message.formparams.count 整數 唯讀

訊息中所有表單參數的計數。

Proxy 要求
message.formparams.names 集合 唯讀

訊息中所有表單參數的值。

Proxy 要求
message.formstring 字串 唯讀

訊息中表單字串的值。

Proxy 要求
message.header.header_name 字串 讀取/寫入

取得或設定訊息中所指定的 HTTP 標頭值。如果標頭含有半形逗號,在讀取時,您只會收到文字區段 (直到第一個半形逗號為止)。如要指定整個標頭,請使用 request.header.header_name.
 values
表單

Proxy 要求
message.header.header_name.N 字串 讀取/寫入

視流程狀態而定,訊息中的「第 N 個」特定標頭值 (要求或回應) 的值。Apigee Edge 會以半形逗號分隔標頭文字值。請注意,用於 N 值的索引是以 1 為基礎,而非從 0 開始。

舉例來說,如果 Cache-control 標頭為「public,maxage=16544」,則 message.header.cache-control.1 的傳回值為「maxage=16544」。

Proxy 要求
message.header.header_name.
 values
集合 唯讀

訊息中所有指定的 HTTP 標頭名稱值。

Proxy 要求
message.header.header_name.
 values.count
整數 唯讀

訊息中指定的 HTTP 標頭名稱值計數。

Proxy 要求
message.headers.count 整數 唯讀

郵件中所有 HTTP 標頭的計數。

Proxy 要求
message.headers.names 集合 唯讀

訊息中所有 HTTP 標頭的值

Proxy 要求
message.path 字串 讀取/寫入

網址中的完整要求訊息路徑,不含任何查詢參數。

Proxy 要求
message.queryparam.param_name 字串 唯讀

傳回指定訊息的查詢參數。

Proxy 要求
message.queryparam.param_name.N 字串 讀取/寫入

訊息中的 Nth 查詢參數值。舉例來說,如果 request.querystring 是「a=hello&a=world」,則 message.queryparam.a.1 的回傳值為「hello」。

舉例來說,如要為單一查詢參數名稱寫入多個值 (例如「type=siteid:1&type=language:us-en&type=currency:USD」),請設定下列項目:

  • message.queryparam.type.1 改為「siteid:1」
  • message.queryparam.type.2 改為「language:en-us」
  • message.queryparam.type.3轉換為「currency:USD」
Proxy 要求
message.queryparam.param_name.
 values
集合 唯讀

訊息中特定查詢參數的所有值,格式為以逗號分隔的清單。

舉例來說,如果查詢字串是 a=hello&a=world,則 message.queryparam.a.values 的值就是「['hello', 'world']」。

Proxy 要求
message.queryparam.param_name.
 values.count
整數 唯讀

與從用戶端應用程式傳送至 Proxy 端點的要求相關聯的指定查詢參數總數。

Proxy 要求
message.queryparams.count 整數 唯讀

與從用戶端應用程式傳送至 Proxy 端點的要求相關聯的所有查詢參數總數。

Proxy 要求
message.queryparams.names 集合 唯讀

與從用戶端應用程式傳送至 ProxyEndpoint 的要求相關聯的所有查詢參數名稱清單。

如要使用 JavaScript 疊代查詢參數名稱,請參閱下列 Apigee 社群文章:如何在 JS 中對「request.queryparams.names」進行疊代收集? Apigee 社群中。

Proxy 要求
message.querystring 字串 唯讀

此字串包含與從用戶端應用程式傳送至 ProxyEndpoint 的要求相關聯的所有查詢參數名稱和值。

例如,如果是「http://api.apifactory.com/發貨人?name=nick&surname=danger」要求,則 message.querystring 的值為「name=nick&surname=danger」。

Proxy 要求
message.reason.phrase 字串 唯讀

目標回覆訊息的理由。

目標回覆內容
message.status.code 整數 唯讀

目標回應訊息的 HTTP 狀態碼。

目標回覆內容
message.transport.message TransportMessage 唯讀

TransportMessage 類型的訊息,屬於內容相關物件。

Proxy 要求
message.uri 字串 唯讀

完整的 URI 路徑 (位於網域網址後方),包含查詢參數。

舉例來說,如果是「http://api.apifactory.com/inventoryors?name=nikola&surname=tesla"」這個變數,這個變數會傳回「發明人員?name=nikola&surname=tesla」。

Proxy 要求
message.verb 字串 唯讀

與要求相關聯的 HTTP 動詞 (GETPUTPOSTDELETE 等)。

Proxy 要求
message.version 字串 讀取/寫入

與從用戶端應用程式傳送至 ProxyEndpoint 的要求相關聯的 HTTP 版本。

Proxy 要求

如要進一步瞭解訊息,請參閱「訊息範本函式參考資料」。

messageid

代表要求的全域專屬 ID 容器。

下表說明 messageid 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
messageid 字串 唯讀

保留要求的全域專屬 ID,包括路由器主機名稱。這個 ID 可讓路由器收到的要求傳送至訊息處理工具後,以便進行追蹤。

這個 ID 會記錄在 Edge 錯誤記錄檔中,以便將 messageid 與錯誤建立關聯。

Proxy 要求

organization

organization.name 屬性的容器。

下表說明 organization 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
organization.name 字串 唯讀

機構名稱。

Proxy 要求

如要進一步瞭解機構,請參閱「瞭解機構」一文。

proxy

API Proxy 設定。

下表說明 proxy 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
proxy.basepath 字串 唯讀

API Proxy 設定中基本路徑的值。基本路徑是網址中位於主機的 URI 片段。條件式流程 URI 依循基本路徑。

在網址「http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282」:

  • 主機為「myorg-test.apigee.net」(包含機構名稱和環境)
  • 基本路徑為「/v2/weatherapi」

唯一能瞭解這種情況的唯一方式,就是查看 API Proxy 定義或檢查 Proxy.basepath 變數的值。Proxy 路徑後置字串接在基本路徑 (「/forecastrss」),以及所有查詢參數。

如果您在 API Proxy 設定中定義動態基本路徑 (例如「/v2/*/weatherapi」),即使基本路徑會解析為靜態值 (例如「/v2/foo/weatherapi」),也會將這個變數設為動態路徑 (「/v2/*/weatherapi」)。

Proxy 要求
proxy.client.ip 字串 唯讀

來電的 X-Forwarded-For 位址,也就是從上次外部 TCP 握手收到的 IP 位址邊緣。可以是呼叫用戶端或負載平衡器。

Proxy 要求
proxy.name 字串 唯讀

為 ProxyEndpoint 設定的名稱屬性。

Proxy 要求
proxy.pathsuffix 字串 唯讀

從用戶端傳送並在 ProxyEndpoint 上接收的 API Proxy 基本路徑後置字串值。

基本路徑的定義為可唯一識別 API Proxy 的路徑元件。API Proxy 的公開網址包含您的機構名稱、部署 Proxy 的環境、基本路徑、基本路徑後置字串及任何查詢參數。

例如,在向 http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282 發出的要求中,基本路徑後置字串為「/forecastrss」。

Proxy 要求
proxy.url 字串 唯讀

取得與 ProxyEndpoint 接收的 Proxy 要求相關聯的完整網址,包括任何存在的查詢參數。如果使用 <LocalTargetConnection> 叫用 Proxy 來執行 Proxy 鏈結,網址的主機一律為 localhost

如需使用原始主機建構 request 網址的範例,請參閱「存取要求訊息」。

Proxy 要求

如要進一步瞭解如何使用 API Proxy,請參閱瞭解 API 和 API Proxy

request

完整要求,包括任何現有酬載。

如要進一步瞭解要求資料,請參閱「如何將要求資料傳遞至後端伺服器?」一節。

下表說明 request 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
request message 唯讀

完整要求,包括任何現有酬載。

Proxy 要求
request.content 字串 讀取/寫入

取得或設定要求訊息的酬載。

Proxy 要求
request.formparam.param_name 字串 讀取/寫入

在從用戶端應用程式傳送的要求中,取得或設定指定表單參數值。

Proxy 要求
request.formparam.param_name.
 values
集合 唯讀

要求中特定表單參數的所有值,採用以逗號分隔的清單格式。

舉例來說,如果酬載為「a=hello&x=greeting&a=world」,則 request.formparam.a.values 的值為「['hello', 'world']」。

Proxy 要求
request.formparam.param_name.
 values.count
整數 唯讀

與要求相關聯的指定表單參數所有值的計數。

Proxy 要求
request.formparam.param_name.N 字串 讀取/寫入

訊息中 Nth 特定表單參數的值。舉例來說,如果表單字串是「a=hello&a=world」,則 request.formparam.a.1 的回傳值為「hello」。

Proxy 要求
request.formparams.count 整數 唯讀

與用戶端應用程式傳送的要求相關聯的所有表單參數計數。

Proxy 要求
request.formparams.names 集合 唯讀

列出與要求相關的所有表單參數名稱。

Proxy 要求
request.formstring 字串 唯讀

從用戶端應用程式送出的要求中,完整的 formparam

例如「name=test&type=first&group=A」。

Proxy 要求
request.header.header_name 字串 讀取/寫入

取得或設定要求中的特定標頭值。如果標頭含有半形逗號,在讀取時,您只會收到文字區段 (直到第一個半形逗號為止)。

如要指定整個標頭,請使用 request.header.header_name.values 表單。

Proxy 要求
request.header.header_name.N 字串 讀取/寫入

請求中的第 N 個特定標頭值的值。Apigee Edge 會以半形逗號分隔標頭文字值。請注意,用於 N 值的索引是以 1 為基礎,而非從 0 開始。

舉例來說,如果 Cache-control 標頭為「public, maxage=16544」,則 request.header.cache-control.1 的傳回值為「maxage=16544」。

Proxy 要求
request.header.header_name.
 values
集合 唯讀

要求中特定標頭的所有值。

Proxy 要求
request.header.header_name.
 values.count
整數 唯讀

要求中特定標頭的所有值計數。

Proxy 要求
request.headers.count 整數 唯讀

要求中所有標頭的計數。

Proxy 要求
request.headers.names 集合 唯讀

要求中所有標頭的名稱。

Proxy 要求
request.path 字串 唯讀

未經 Proxy 處理的資源路徑 (不含主機),不含查詢參數。

舉例來說,後端服務的 URI 為「https://example.com/rest/api/latest」,則 request.path 的值為「/rest/api/latest」。

Proxy 要求
request.queryparam.param_name 字串 讀取/寫入

要求中特定查詢參數的值。

Proxy 要求
request.queryparam.param_name.N 字串 讀取/寫入

要求中的 Nth 查詢參數值。

舉例來說,如果 request.querystring 是「a=hello&a=world」,則回傳值為 request.queryparam.a.1「hello」。

舉例來說,如要為單一查詢參數名稱寫入多個值 (例如「type=siteid:1&type=language:us-en&type=currency:USD」),請設定下列項目:

  • request.queryparam.type.1 改為「siteid:1」
  • request.queryparam.type.2 改為「language:en-us」
  • request.queryparam.type.3轉換為「currency:USD」
Proxy 要求
request.queryparam.param_name.
 values
集合 唯讀

要求中特定查詢參數的所有值,格式為以逗號分隔的清單。

舉例來說,如果 request.querystring 為 "a=hello&b=lovely&a=world",則 request.queryparam.a.values 的值為「['hello', 'world']」。

Proxy 要求
request.queryparam.param_name.
 values.count
整數 唯讀

要求中特定查詢參數的所有值計數。

Proxy 要求
request.queryparams.count 整數 唯讀

要求中所有查詢參數的計數。

Proxy 要求
request.queryparams.names 集合 唯讀

要求中所有查詢參數的名稱。

如要使用 JavaScript 疊代查詢參數名稱,請參閱 Apigee 社群中的 如何從 JS 中的「request.queryparams.names」疊代集合?相關說明。

Proxy 要求
request.querystring 字串 唯讀

從用戶端應用程式傳送的要求中,完整的查詢參數清單。

舉例來說,如果要求是「http://host.com/123?name=first&surname=second&place=address」,這個變數就會傳回「name=first&surname=second&place=address」。

Proxy 要求
request.transportid 字串 唯讀

TransportMessage 類型的要求 ID,此為內容比對物件。

Proxy 要求
request.transport.message 傳輸訊息 唯讀

TransportMessage 類型的要求,此為連續物件。

Proxy 要求
request.uri 字串 唯讀

在 API Proxy 中,除了 Proxy 的基準網址之外,Proxy 端點中的 Proxy <BasePath> 也會對應至 TargetEndpoint 中的目標服務網址。例如:

<ProxyEndpoint>
...
  <BasePath>/my-mock-proxy</BasePath>

指向

<TargetEndpoint>
...
  <HTTPTargetConnection>
    http://mocktarget.apigee.net
  </HTTPTargetConnection>

要求中,request.uri 是 Proxy 基本路徑 + 位址的其餘部分,包括查詢參數。

回應中,request.uri 是 HTTPTargetConnection 之後位址的其餘部分,包括查詢參數。

這是因為原始要求已進入 Proxy,但 Proxy 向目標服務發出另一個要求。

假設以下呼叫是對我們的範例 Proxy 發出,其基本路徑為「/my-mock-proxy」:

http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude

以及 Proxy 呼叫:

http://mocktarget.apigee.net

對該網址加上「/user?user=Dude」連結。

  • 要求:request.uri = "/my-mock-proxy/user?user=Dude"
  • 回應:request.uri = "/user?user=Dude"
Proxy 要求 (回應中的差異)
request.url 字串 唯讀

向目標端點提出的要求完整網址,包括查詢字串參數,但不包含通訊埠號碼 (如有指定)。

舉例來說,如果您呼叫了範例 Proxy 「http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude」,而目標端點是「http://example.com:8080」,則值如下:

  • 要求:不適用
  • 回應:「http://example.com/user?user=Dude」
目標回覆內容
request.verb 字串 唯讀

用於要求的 HTTP 動詞。例如「GET」、「PUT」和「DELETE」。

Proxy 要求
request.version 字串 唯讀

要求的 HTTP 版本。例如「1.1」。

Proxy 要求

response

完整回應,包括任何存在的酬載。

下表說明 response 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
response message 讀取/寫入

目標傳回的完整回應訊息。

目標回覆內容
response.content 字串 讀取/寫入

目標所傳回回應訊息的酬載內容。

目標回覆內容
response.formparam.param_name 字串 讀取/寫入

回應中表單參數值。

目標回覆內容
response.formparam.param_name.
 values.count
整數 唯讀

回應中指定表單參數的所有值計數。

目標回覆內容
response.formparams.count 整數 唯讀

回應中所有表單練習器的計數。

目標回覆內容
response.formparams.names 集合 唯讀

回應中所有表單參數的名稱。

目標回覆內容
response.header.header_name 字串 讀取/寫入

取得或設定回應中的指定 HTTP 標頭值。

如果標頭文字包括半形逗號,Apigee Edge 會推論多個值。在這種情況下,response.header.header_name 只會傳回第一個值。

如要讀取整個標頭,請使用 response.header.header_name.values 表單。

目標回覆內容
response.header.header_name.
 values
集合 唯讀

回應中特定 HTTP 標頭的所有值。

目標回覆內容
response.header.header_name.
 values.count
整數 唯讀

回應中指定 HTTP 標頭的所有值計數。

目標回覆內容
response.header.header_name.N 字串 讀取/寫入

回應中第 N 個特定標頭值的值。Apigee Edge 會以半形逗號分隔標頭文字值。請注意,用於 N 值的索引是以 1 為基礎,而非從 0 開始。

舉例來說,如果 Cache-control 標頭為「public, maxage=16544」,則 response.header.cache-control.1 就會傳回「maxage=16544」。

目標回覆內容
response.headers.count 整數 唯讀

回應中所有標頭的計數。

目標回覆內容
response.headers.names 集合 唯讀

回應中所有標頭的名稱。

目標回覆內容
response.reason.phrase 字串 讀取/寫入

特定要求的回應原因詞組。

目標回覆內容
response.status.code 整數 讀取/寫入

針對要求傳回的回應代碼。您可以使用這個變數來覆寫回應狀態碼 (儲存在 message.status.code 中)。詳情請參閱 message

目標回覆內容
response.transport.message 字串 唯讀

TransportMessage 類型的回應,此為連續物件。

目標回覆內容

route

指定 <RouteRule> 和 TargetEndpoint 的名稱。

下表說明 route 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
route.name 字串 唯讀

在 ProxyEndpoint 中執行的 <RouteRule> 名稱。例如「default」。RouteRule 參照要執行的 API Proxy TargetEndpoint。

目標要求
route.target 字串 唯讀

已執行的 TargetEndpoint 名稱。例如「default」。

目標要求

router

router.uuid 屬性 (已淘汰) 的容器。

下表說明 router 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
router.uuid 字串 唯讀

已淘汰並傳回空值。(原為處理 Proxy 的路由器 UUID)。

Proxy 要求

servicecallout

說明 Service callout 政策的 TargetEndpoint。

下表說明 servicecallout 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
servicecallout.policy_name.expectedcn 字串 讀取/寫入

Service callout 政策一節中參照的 TargetEndpoint 一般名稱。只有在 TargetEndpoint 參照傳輸層安全標準 (TLS)/安全資料傳輸層 (SSL) 端點時,才會有意義。

Proxy 要求
servicecallout.policy_name.target.url 字串 讀取/寫入

特定 Service callout 政策的 TargetEndpoint 網址。

Proxy 要求
servicecallout.requesturi 字串 讀取/寫入

Service callout 政策政策的 TargetEndpoint URI。URI 是不含通訊協定和網域規格的目標端點網址。

Proxy 要求

system

指定系統的 IP 位址,以及 Proxy 的詳細資料。

下表說明 system 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
system.interface.interface_name 字串 唯讀

系統的 IP 位址

Proxy 要求
system.pod.name 字串 唯讀

執行 Proxy 的 Pod 名稱。

Proxy 要求
system.region.name 字串 唯讀

執行 Proxy 的資料中心 區域名稱。

Proxy 要求
system.time 字串 唯讀

讀取這個變數的時間。例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個值是 system.timestamp 對應值的字串表示法。例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值「1377112607413」。

Proxy 要求
system.time.year 整數 唯讀

system.time的年份部分。

Proxy 要求
system.time.month 整數 唯讀

system.time的月份。

Proxy 要求
system.time.day 整數 唯讀

system.time月份的第幾天。

Proxy 要求
system.time.dayofweek 整數 唯讀

system.time的星期幾。

Proxy 要求
system.time.hour 整數 唯讀

system.time的小時部分。

Proxy 要求
system.time.minute 整數 唯讀

system.time 的分鐘部分。

Proxy 要求
system.time.second 整數 唯讀

system.time 的第二部分。

Proxy 要求
system.time.millisecond 整數 唯讀

system.time 的毫秒部分。

Proxy 要求
system.time.zone 字串 唯讀

系統時區。

Proxy 要求
system.timestamp 長整數 唯讀

64 位元 (長) 整數,代表這個變數讀取的時間。這個值是自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。例如「1534783015000」。

Proxy 要求
system.uuid 字串 唯讀

處理 Proxy 的訊息處理器 UUID。

Proxy 要求

target

說明要求的目標。

下表說明 target 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
target.basepath 字串 唯讀

目標服務的資源路徑 (不包括網域) (不含查詢參數),在 Proxy 的 TargetEndpoint 中定義。

舉例來說,假設 API Proxy 呼叫下列目標:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net/user?user=Dude</URL>
  </HTTPTargetConnection>

在本例中,target.basepath 為「/user」。

假設指定目標是:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
  </HTTPTargetConnection>

target.basepath 為空值。

目標要求
target.copy.pathsuffix 布林值 讀取/寫入

如果為「true」,從 ProxyEndpoint 轉送到 TargetEndpoint 的要求會保留路徑後置字串 (位於 ProxyEndpoint 基本路徑中定義的 URI 後方的 URI 路徑片段)。

目標要求
target.copy.queryparams 布林值 讀取/寫入

如果為「true」,從 ProxyEndpoint 轉送到 TargetEndpoint 的要求會保留查詢參數。

目標要求
target.country 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證國家/地區

目標回覆內容
target.cn 字串 唯讀

TargetEndpoint 的通用名稱。只有在 TargetEndpoint 參照傳輸層安全標準 (TLS)/安全資料傳輸層 (SSL) 端點時,才會有意義。

目標要求
target.email.address 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證電子郵件地址

目標回覆內容
target.expectedcn 字串 讀取/寫入

TargetEndpoint 的預期一般名稱。只有在 TargetEndpoint 參照傳輸層安全標準 (TLS)/安全資料傳輸層 (SSL) 端點時,才會有意義。

Proxy 要求
target.host 字串 唯讀

傳回 API Proxy 回應的目標服務網域名稱。

目標回覆內容
target.ip 字串 唯讀

將回應傳回 API Proxy 的目標服務 IP 位址。

目標回覆內容
target.locality 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證的位置 (城市)

目標回覆內容
target.name 字串 唯讀

指定從目標端點傳送至訊息的目標。

目標要求
target.organization 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證機構。

目標回覆內容
target.organization.unit 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證機構單位。

目標回覆內容
target.port 整數 唯讀

將回應傳回 API Proxy 的目標服務通訊埠編號。

目標回覆內容
target.received.end.time 字串 唯讀

時間,以字串形式表示,TargetEndpoint 完成收到目標的回應。例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值「1377112607413」。

目標回覆內容
target.received.end.
  timestamp
長整數 唯讀

指定 TargetEndpoint 完成收到目標回應的時間戳記值。例如「1534783015000」。這個值是 64 位元 (長) 整數,用於指定自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標回覆內容
target.received.start.time 字串 唯讀

時間,以字串格式表示,TargetEndpoint 開始收到目標的回應。例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值「1377112607413」。

目標回覆內容
target.received.start.
  timestamp
長整數 唯讀

指定 TargetEndpoint 開始接收目標回應時間的時間戳記值。例如「1534783015000」。這個值是 64 位元 (長) 整數,用於指定自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標回覆內容
target.scheme 字串 唯讀

範圍開始:目標回應
類型:字串
權限:讀取/寫入

根據要求訊息傳回 http 或 https。

目標要求
target.sent.end.time 字串 唯讀

時間,以字串格式表示,Proxy 停止將要求傳送至 TargetEndpoint 中指定的網址。例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值「1377112607413」。

目標要求
target.sent.end.timestamp 長整數 唯讀

指定 Proxy 何時將要求傳送至 TargetEndpoint 指定網址的時間戳記值。例如「1377112607413」。這個值是 64 位元 (長) 整數,內含自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標要求
target.sent.start.time 字串 唯讀

時間,以字串格式表示,Proxy 開始將要求傳送至 TargetEndpoint 中指定的網址。例如「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是對應 32 位元時間戳記數量的字串,例如,「Wed, 21 Aug 2013 19:16:47 UTC」可對應至時間戳記值「1377112607413」。

目標要求
target.sent.start.timestamp 長整數 唯讀

指定 Proxy 開始傳送要求至 TargetEndpoint 指定網址的時間戳記值。例如「1534783015000」。這個值是 64 位元 (長) 整數,用於指定自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標要求
target.ssl.enabled 布林值 唯讀

TargetEndpoint 是否在 TLS/SSL 上執行。

Proxy 要求
target.state 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證狀態,

目標回覆內容
target.url 字串 讀取/寫入

TargetEndpoint XML 檔案或動態目標網址中設定的網址 (如果在訊息流程中設定了 target.url)。這個變數不含任何額外的路徑元素或查詢參數。如果呼叫範圍超出範圍或未設定,則會傳回空值。

目標要求

variable

variable.expectedcn 屬性的容器。

下表說明 variable 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
variable.expectedcn 字串 讀取/寫入

在 TLS/SSL 上執行時,會顯示常見名稱的變數。

Proxy 要求

如要進一步瞭解如何使用 TLS,請參閱 TLS/SSL 簡介

virtualhost

指定虛擬主機的相關詳細資料。

下表說明 virtualhost 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
virtualhost.aliases.values 字串陣列 唯讀

在特定要求期間命中的虛擬主機主機別名。

Proxy 要求
virtualhost.name 字串 唯讀

提供原始用戶端要求的虛擬主機名稱。

Proxy 要求
virtualhost.ssl.enabled 布林值 唯讀

如果虛擬主機設定已啟用 TLS/SSL,則傳回「true」。

Proxy 要求

如要進一步瞭解如何使用虛擬主機,請參閱「設定虛擬主機」。