本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
請參閱下列各節,瞭解及管理資源。
關於資源
許多政策類型都依賴資源。資源是指實作程式碼或設定的檔案,附加至 API Proxy 時,政策會執行這些檔案。在某些情況下,例如 JavaScript 和 JavaCallout,政策只會定義 API Proxy 中的附加點,讓某些程式碼得以執行。JavaScript 或 JavaCallout 政策是指向資源的指標。
資源類型
下表列出資源類型:
資源類型 | 說明 |
---|---|
GraphQL (graphql) |
GraphQL 政策參照的 GraphQL 結構定義檔案。 |
JAR (java) |
JavaCallout 政策參照的 JAR 檔案中的 Java 類別。 |
JavaScript (js) |
JavaScript 政策參照的 JavaScript。 |
JavaScript (jsc) |
JavaScript 政策參照的已編譯 JavaScript。 |
OpenAPI Specification (oas) |
OpenAPI 規格,用於驗證 JSON 或 YAML 類型的要求和回應訊息。 |
Property Set (properties) |
可參照 API Proxy 屬性集的鍵/值組合集合。 |
Python (py) |
PythonScript 政策參照的 Python 指令碼。資源必須以「純 Python」實作 (僅限 Python 語言)。 |
Security policy (securityPolicy) |
JavaCallout 政策參照的自訂安全性政策。 |
WSDL (wsdl) |
SOAPMessageValidation 政策參照的 WSDL 檔案。 |
XSD (xsd) |
SOAPMessageValidation 政策參照的 XML 架構。 |
XSL Transformations (xsl) |
XSLTransform 政策參照的 XSLT 轉換。 |
資源的儲存位置
您可以將資源儲存至下列位置。您無法將資源檔案儲存在機構中。
- API Proxy 修訂版本:資源僅適用於包含這些資源的 API Proxy 修訂版本。舉例來說,您可能會在 API Proxy 的修訂版本 1 中加入 JavaScript 資源,然後在 Proxy 的修訂版本 2 中變更實作方式,改用 Python 指令碼。修訂版本 1 只能存取 JavaScript 資源,修訂版本 2 則只能存取 Python 資源。
- 環境:儲存在環境 (例如
test
或prod
) 時,資源可供部署在相同環境中的任何 API Proxy 使用。
如「列出資源檔案 API」和「使用 API 管理資源」一節所述,環境存放區位於下列 URI:
/organizations/$ORG/environments/$ENV/resourcefiles
下表列出可用於建立、更新及刪除每個存放區資源的方法:
存放區 | 建立 | 查看 | 更新 | 刪除 | ||||
---|---|---|---|---|---|---|---|---|
API | UI | API | UI | API | UI | API | UI | |
API Proxy 修訂版本 | ||||||||
環境 |
舉例來說,test
環境可用的所有 JavaScript 檔案都儲存在下列存放區,且在 test
環境中執行的任何 API Proxy 都能使用:
/organizations/$ORG/environments/test/resourcefiles/jsc
資源名稱解析
從最明確到最一般的範圍解析資源名稱。資源名稱會「向上鏈結」解析,從 API Proxy 修訂版本層級到環境層級。
假設您在兩個不同的存放區 (API Proxy 修訂版本和 prod
環境) 中填入相同的資源。
假設 API Proxy 設定了下列政策:
<Javascript name='PathSetterPolicy' timeLimit='200'> <ResourceURL>jsc://pathSetter.js</ResourceURL> </Javascript>
政策參照無法明確解析為存放區。系統會解析名稱與政策中資源名稱相符的最細微範圍的第一個資源。
因此,當 API Proxy 部署在環境 prod
中時,政策會解析為環境範圍的 pathSetter.js
資源。
部署至 test
環境時,政策會解析為 API 代理項目修訂版本範圍的資源,因為環境範圍的資源位於 prod
環境,而非 test
環境。
Java 資源指南
您可以使用 curl 中的多個選項,以 JAR 檔案形式新增已編譯的 Java 資源,例如 -T
、--data-binary
或 -F
選項 (不是 -d
選項)。例如:
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @{jar_file}
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ -T "{jar_file}"
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ -F "file=@{jar_file}"
另請參閱:
- Java 最佳做法:API Proxy 設計與開發最佳做法
- Java 食譜範例:XSL 轉換政策
使用 UI 管理資源
如要使用 UI 管理範圍限定為 API Proxy 修訂版本的資源,請參閱下列各節。
透過使用者介面查看資源
Cloud 控制台中的 Apigee
-
在 Google Cloud 控制台中,前往「Proxy development」(Proxy 開發) >「API proxies」(API Proxy) 頁面。
選取要查看資源的 API Proxy。系統會顯示 Proxy 編輯器的「總覽」檢視畫面。
- 按一下「開發」分頁標籤。
- 在導覽窗格中,向下捲動至「Resources」(資源)。下方會顯示目前的資源。
傳統版 UI
如要使用傳統 Proxy 編輯器,查看 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 登入 Apigee UI。
- 在左側導覽列中選取「開發」>「API Proxy」。
- 在清單中選取要建立資源的 API Proxy。
系統會開啟 API 代理編輯器,並預設顯示「總覽」分頁。 - 按一下「開發」分頁標籤。
- 視需要從「修訂版本」下拉式選單中選取修訂版本。
在「Navigator」檢視畫面中,API Proxy 修訂版本範圍內的資源會列在「Resources」專區。
使用 UI 建立資源
Cloud 控制台中的 Apigee
如要使用 Apigee in Cloud 控制台建立資源,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Proxy development」(Proxy 開發) >「API proxies」(API Proxy) 頁面。
選取要查看資源的 API Proxy。系統會顯示 Proxy 編輯器的「總覽」檢視畫面。
- 按一下「開發」分頁標籤。
- 在導覽窗格中向下捲動至「資源」,然後點選右側的「+」按鈕。
- 在「新增資源」對話方塊中,輸入下列資訊:
- 「Resource type」:選取資源的檔案類型。
- 在「來源」下方,選取「建立新檔案」或「匯入檔案」。如果選擇「匯入檔案」,請在「檔案」欄位中選取要匯入的檔案。
- 資源名稱:輸入資源名稱。
- 按一下「新增」。
傳統版 Apigee
如要使用傳統 Apigee UI 建立 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「導覽器」檢視畫面的「資源」部分中,按一下「+」,開啟「新增資源」對話方塊。
- 輸入下列指令:
欄位 說明 來源 選取要建立新檔案或匯入檔案。 檔案類型 從下拉式清單中選取資源類型。 檔案名稱 檔案名稱。檔案名稱副檔名必須適用於所選檔案類型。
使用 UI 更新資源
只有在 API Proxy 修訂版本尚未部署時,才能更新該版本範圍內的資源。API Proxy 修訂版本部署後就無法變更。
如要使用 UI 更新 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「Resources」(資源) 底下的「Navigator」(導覽器) 檢視畫面中,按一下要更新的資源。
注意:如要編輯 JAR 檔案,請將游標懸停在要編輯的資源上,然後點選。
- 視需要更新資源。
注意:上傳新的 JAR 檔案後,請按一下「更新」。
使用 UI 刪除資源
只有在修訂版本尚未部署的情況下,才能刪除 API Proxy 修訂版本範圍內的資源。API Proxy 修訂版本部署後就無法變更。
如要使用 UI 刪除 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「資源」下方的「導覽器」檢視畫面中,將游標移至要刪除的資源上,顯示動作選單。
- 按一下「
」。
- 按一下「刪除」確認動作。
使用 API 管理資源
如以下各節所述,使用 API 管理資源。
使用 API 建立資源
請按照下列各節所述,建立以 API Proxy 修訂版本或環境為範圍的資源。
使用 API 建立 API Proxy 修訂版本範圍內的資源
如要使用 API 建立以 API Proxy 修訂版本為範圍的資源,請參閱下列各節。如要使用 API 建立以 API Proxy 修訂版本為範圍的資源,請按照下列步驟操作:
- 建立資源檔案。
- 將資源檔案新增至 API Proxy 設定套件。
- 使用下列其中一個 API 上傳套件:
使用 API 建立環境範圍內的資源
如要使用 API 建立環境範圍內的資源,請對下列資源發出 POST
要求:
/organizations/$ORG/environments/$ENV/resourcefiles
請在要求中傳遞下列資訊:
- 將
name
查詢參數設為資源名稱 - 將
type
查詢參數設為必要的資源類型 - 將資源檔案的內容做為
application/octet-stream
或multipart/form-data
傳遞
以下範例說明如何透過要求主體傳遞 JavaScript 資源的內容,藉此建立該資源。
curl -X POST https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");'
其中 $TOKEN
會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl
選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。
以下範例說明如何從本機電腦上傳資源檔案。請務必在 curl 中使用 -F
上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X POST https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:multipart/form-data" \
-F file=@pathSetter.js
以下是回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 查看資源
以下各節說明如何使用 API 查看資源。
使用 API 查看所有資源
如要查看環境範圍內的所有資源,請使用 API,詳情請參閱下列各節。
使用 API 時,您只能查看環境範圍內的資源。
如要使用 API 查看環境中的所有資源,請對下列資源發出 GET
要求:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles
以下範例會列出 test
環境中的所有資源:
curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles
-H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl
選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。
詳情請參閱「列出環境資源檔案 API」。
以下是回應範例。
{
"resourceFile": [
{
"name" : "pathSetter.js",
"type" : "jsc"
}
]
}
使用 API 查看資源內容
如要使用 API 查看環境中的資源內容,請對下列資源發出 GET
要求:
/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
以下範例列出 test
環境中 pathSetter.js
JavaScript (jsc
) 檔案的內容:
curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl
選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。
以下是回應範例:
request.headers["RequestPath"] = context.getVariable("proxy.basepath");
使用 API 更新資源
更新範圍限定為 API Proxy 修訂版本或環境的資源,詳情請參閱下列各節。
使用 API 更新 API Proxy 修訂版本範圍內的資源
如要使用 API 更新 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 使用 Get API proxy revision API 下載 API Proxy 設定套件,並使用下列選項:
- 將
format
查詢參數設為bundle
- 將
Accept
標頭設為application/zip
- 將
- 更新 API Proxy 設定套件中的資源檔案。
- 使用「更新 API Proxy 修訂版本」API 上傳 API Proxy 設定套件。
使用 API 更新環境範圍內的資源
如要使用 API 更新環境範圍內的資源,請對下列資源發出 PUT
要求:
/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
將資源檔案的內容做為 application/octet-stream
或 multipart/form-data
傳遞。
以下範例說明如何透過在要求主體中傳遞 JavaScript 資源的內容,更新該資源。
curl -X PUT https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");'
其中 $TOKEN
會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl
選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。
以下範例說明如何使用本機電腦的檔案更新資源檔案。請務必在 curl 中使用 -F
上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X PUT https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Authorization: Bearer $TOKEN" \
-H "Content-type:multipart/form-data" \
-F file=@pathSetter.js
以下是回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 刪除資源
如要刪除 API Proxy 修訂版本或環境範圍內的資源,請參閱下列各節。
使用 API 刪除 API Proxy 修訂版本範圍內的資源
在混合式環境中,如要使用 API 刪除 API Proxy 範圍內的資源,請按照下列步驟操作:
- 使用 Get API proxy revision API 下載 API Proxy 設定套件,並使用下列選項:
- 將
format
查詢參數設為bundle
- 將
Accept
標頭設為application/zip
- 將
- 從 API Proxy 設定套件中刪除資源檔案。
- 使用「更新 API Proxy 修訂版本」API 上傳 API Proxy 設定套件。
使用 API 刪除環境範圍內的資源
如要使用 API 刪除環境範圍內的資源,請參閱下列各節。
如要使用 API 刪除環境範圍內的資源,請對下列資源發出 DELETE
要求:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME
以下範例會從 test
環境刪除 pathSetter.js
JavaScript 資源檔案:
curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js \ -H "Authorization: Bearer $TOKEN"
其中 $TOKEN
會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl
選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。
詳情請參閱「刪除資源檔案 API」。
以下是回應範例。
{
"name" : "pathSetter.js",
"type" : "jsc"
}
存取資源
本節的範例說明如何建立及管理名為 pathSetter.js
的 JavaScript 資源,以便 JavaScript 類型的政策參照該資源。
如要將 JavaScript 附加至要求 PostFlow,請建立名為 PathSetterPolicy.xml
的政策,並參照 pathSetter.js
檔案:
<Javascript name='PathSetterPolicy' timeLimit='200'> <ResourceURL>jsc://pathSetter.js</ResourceURL> </Javascript>
然後,在端點設定中參照該原則:
<PostFlow> <Request> <Step><Name>PathSetterPolicy</Name></Step> </Request> <PostFlow>
詳情請參閱「JavaScript 政策」。