您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
請參閱下列各節,瞭解及管理資源。
關於資源
許多政策類型都依賴資源。資源是實作程式碼或設定的檔案,附加至 API Proxy 時,政策會執行這些檔案。在某些情況下,如 JavaScript 和 JavaCallout,政策只會定義 API Proxy 中的附加點,讓某些程式碼得以執行。JavaScript 或 JavaCallout 政策是指向資源的指標。
下列 JavaScript 範例會將 HTTP 要求路徑設為 proxy.basepath 變數的值。
request.headers["RequestPath"] = context.getVariable("proxy.basepath");資源類型
下表摘要列出資源類型:
| 資源類型 | 說明 |
|---|---|
JAR (java) |
JavaCallout 政策參照的 JAR 檔案中的 Java 類別。 |
JavaScript (js) |
JavaScript 政策參照的 JavaScript。 |
JavaScript (jsc) |
JavaScript 政策參照的已編譯 JavaScript。 |
Hosted target (hosted) |
要部署至代管目標的 Node.js 檔案。您可以將 Node.js 部署為 Edge 後端目標應用程式。 |
Node (node) |
Node.js 檔案,包括主要的 Node.js 檔案、相關來源檔案和模組依附元件。 |
Python (py) |
PythonScript 政策參照的 Python 指令碼。資源必須以「純 Python」實作 (僅限 Python 語言)。 |
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 Proxy 使用。
如資源檔案 API 和「使用 API 管理資源」一文所述,這些存放區位於下列 URI:
- 機構:
/organizations/{org}/resourcefiles - 環境:
/organizations/{org}/environments/{env}/resourcefiles - API Proxy:
/organizations/{org}/apis/{api}/revisions/{rev}/resources
下表列出可用於建立、更新及刪除每個存放區資源的方法:
| 存放區 | 建立 | 查看 | 更新 | 刪除 | ||||
|---|---|---|---|---|---|---|---|---|
| API | UI | API | UI | API | UI | API | UI | |
| API Proxy 修訂版本 | ||||||||
| 環境 | ||||||||
| 組織 | ||||||||
舉例來說,test 環境可用的所有 JavaScript 檔案都儲存在下列存放區,且在 test 環境中執行的任何 API Proxy 都能使用:
/organizations/{org}/environments/test/resourcefiles/jsc資源名稱解析
Edge 會從最明確的範圍到最一般的範圍解析資源名稱。資源名稱會「向上鏈結」解析,從 API Proxy 修訂版本層級、環境層級到機構層級 (僅限 Edge)。
假設您在兩個不同的存放區 (API Proxy 修訂版本和 prod 環境) 中填入相同的資源。
假設 API Proxy 設定了下列政策:
<Javascript name='PathSetterPolicy' timeLimit='200'>
<ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>政策參照無法明確解析為存放區。系統會解析名稱與政策中資源名稱相符的第一個資源,該資源位於最細微的範圍。
因此,當 API Proxy 部署在環境 prod 中時,政策會解析為環境範圍的 pathSetter.js 資源。
部署至 test 環境時,政策會解析為 API Proxy 修訂版本範圍的資源,因為環境範圍的資源位於 prod 環境,而非 test 環境。
Java 資源指南
您可以使用 curl 中的多個選項 (例如 -T、--data-binary 或 -F 選項,而非 -d 選項),以 JAR 檔案形式新增已編譯的 Java 資源。例如:
curl "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java" \
-X POST \
--data-binary @{jar_file} \
-H "Content-Type: application/octet-stream" \
-u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
-X POST \
-H "Content-Type: application/octet-stream" \
-T "{jar_file}" \
-u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
-X POST \
-H "Content-Type: application/multipart/form-data" \
-F "file=@{jar_file}" \
-u email:password
另請參閱:
- Java 最佳做法:API Proxy 設計與開發最佳做法
- Java 食譜範例:XSL 轉換政策
Node.js 資源指南
在 API Proxy 中參照 Node.js 指令碼時,請使用 API Proxy TargetEndpoint 設定中的 <ResourceURL> 元素,如「將 Node.js 新增至現有 API Proxy」一文所述。例如:
<ScriptTarget>
<ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>該 Node.js 指令碼和所有支援模組都必須位於 API Proxy 修訂版本範圍內 (在代理程式套件的 /resources/node 目錄中)。在 API Proxy 編輯器中,將 Node.js 資源新增至「Scripts」部分即可完成這項操作。使用 API (import 和 update) 在 API Proxy 修訂版本範圍內儲存資源時,也會發生這種情況。
使用 UI 管理資源
如要使用 UI 管理限定於 API Proxy 修訂版本的資源,請參閱下列各節。
透過 UI 查看資源
如要查看 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
-
登入 apigee.com/edge。
- 在左側導覽列中,依序選取「開發」>「API Proxy」。
- 在清單中選取要建立資源的 API Proxy。
系統會開啟 API Proxy 編輯器,並預設顯示「總覽」分頁。 - 點選「Develop」分頁標籤。
- 視需要選取「修訂版本」下拉式選單中的修訂版本。
在「Navigator」檢視畫面中,API Proxy 修訂版本範圍內的資源會列在「Resources」專區。

使用 UI 建立資源
如要使用 UI 建立 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「導覽器」檢視畫面的「資源」部分中,按一下「+」,開啟「新增資源」對話方塊。
- 輸入下列內容:
欄位 說明 來源 選取要建立新檔案或匯入檔案。 檔案類型 從下拉式清單中選取資源類型。 檔案名稱 檔案名稱。檔案名稱的副檔名必須適用於所選檔案類型。
使用 UI 更新資源
如要使用 UI 更新 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「資源」下方的「導覽器」檢視畫面中,按一下要更新的資源。
注意:如為 JAR 檔案,請將游標懸停在要編輯的資源上,然後點選
。 - 視需要更新資源。
注意:上傳新的 JAR 檔案後,請按一下「更新」。
使用 UI 刪除資源
如要使用 UI 刪除 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:
- 查看 API Proxy 修訂版本範圍內的資源。
- 在「資源」下方的「導覽器」檢視畫面中,將游標移至要刪除的資源上,顯示動作選單。
- 按一下「
」。 - 按一下「刪除」確認操作。
使用 API 管理資源
請按照下列各節所述,使用 API 管理資源。
使用 API 建立資源
如要建立資源,請將範圍限定為 API Proxy 修訂版本、環境或機構 (僅限 Edge),詳情請參閱下列各節。
使用 API 建立 API Proxy 修訂版本範圍內的資源
使用 API,對下列資源發出 POST 要求,建立以 API Proxy 修訂版本為範圍的資源:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles
請在要求中傳遞下列資訊:
- 將
name查詢參數設為資源名稱 - 將
type查詢參數設為必要的資源類型 - 將資源檔案的內容做為
application/octet-stream或multipart/form-data傳遞
以下範例會為 helloworld API Proxy 的修訂版本 1 建立名為 pathSetter.js 的 JavaScript 檔案:
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
以下範例說明如何從本機電腦上傳資源檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
以下是任一 API 呼叫的回應範例。
{
"name": "pathSetter.js",
"type": "jsc"
}詳情請參閱「匯入 API Proxy 修訂版本的資源檔案」。
或者,您也可以使用 Update API Proxy 修訂版本 API,如下所示:
- 建立資源檔案。
- 將資源檔案新增至 API Proxy 設定套件。
- 使用下列其中一個 API 上傳套件:
使用 API 建立環境範圍內的資源
使用 API 向下列資源發出 POST 要求,建立範圍限定於環境的 JavaScript 資源:
/organizations/{org}/environments/{env}/resourcefiles
請在要求中傳遞下列資訊:
- 將
name查詢參數設為資源名稱 - 將
type查詢參數設為必要的資源類型 - 將資源檔案的內容做為
application/octet-stream或multipart/form-data傳遞
以下範例說明如何透過在要求主體中傳遞 JavaScript 資源的內容,建立該資源。
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
以下範例說明如何從本機電腦上傳資源檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
以下是回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 建立機構範圍的資源
如要使用 API 建立機構範圍的資源,請對下列資源發出 POST 要求:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles
請在要求中傳遞下列資訊:
- 將
name查詢參數設為資源名稱 - 將
type查詢參數設為資源檔案類型 (請參閱「資源類型」) - 將資源檔案的內容做為
application/octet-stream或multipart/form-data傳遞
詳情請參閱「為機構匯入資源檔案」。
使用 API 查看資源
以下各節說明如何使用 API 查看資源。
使用 API 查看所有資源
使用 API 時,您可以查看範圍限定於 API Proxy 修訂版本、環境或機構的資源。
舉例來說,如要使用 API 查看環境範圍內的資源,請對下列資源發出 GET 要求:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles
以下範例會列出 test 環境中的所有資源:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
-u email:password以下是回應範例。
{
"resourceFile": [
{
"name" : "pathSetter.js",
"type" : "jsc"
}
]
}使用 API 查看資源內容
如要使用 API 查看資源內容,請參閱下列各節。
使用 API 時,您可以查看範圍限定於 API Proxy 修訂版本、環境或機構的資源。
舉例來說,如要使用 API 查看環境中的資源內容,請對下列資源發出 GET 要求:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name
以下範例列出 test 環境中 pathSetter.js JavaScript 資源檔案的內容:
curl -X GET https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js" \ -H "Accept: application/json" \ -u email:password
以下是回應範例:
request.headers["RequestPath"] = context.getVariable("proxy.basepath");使用 API 更新資源
更新範圍限定於 API Proxy 修訂版本、環境或機構 (僅限 Edge) 的資源,詳情請參閱下列各節。
使用 API 更新 API Proxy 修訂版本範圍內的資源
如要使用 API 更新 API Proxy 修訂版本範圍內的資源,請對下列資源發出 PUT 要求:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}
將資源檔案的內容做為 application/octet-stream 或 multipart/form-data 傳遞
以下範例會更新 helloworld API Proxy 修訂版本 1 的 JavaScript 資源 (名為 pathSetter):
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
以下範例說明如何從本機將資源更新為檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
以下是任一 API 呼叫的回應範例。
{
"name": "pathSetter.js",
"type": "jsc"
}詳情請參閱「匯入 API Proxy 修訂版本的資源檔案」。
或者,您也可以使用 Update API Proxy 修訂版本 API,如下所示:
- 使用 Export API proxy API 下載 API Proxy 設定套件,並搭配下列選項:
- 將
format查詢參數設為bundle - 將
Accept標頭設為application/zip
- 將
- 更新 API Proxy 設定套件中的資源檔案。
- 使用 Update API proxy revision API 上傳套件
使用 API 更新環境範圍內的資源
如要使用 API 更新環境範圍內的資源,請對下列資源發出 PUT 要求:
/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
將資源檔案的內容做為 application/octet-stream 或 multipart/form-data 傳遞。
以下範例說明如何透過在要求主體中傳遞 JavaScript 資源的內容,更新該資源。
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
-H "Content-type:application/octet-stream" \
-d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
-u email:password
以下範例說明如何使用本機電腦的檔案更新資源檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。
curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js -H "Content-type:multipart/form-data" \ -F file=@pathSetter.js \ -u email:password
以下是回應範例:
{ "name" : "pathSetter.js", "type" : "jsc" }
使用 API 更新機構範圍內的資源
如要使用 API 更新機構範圍內的資源,請對下列資源發出 POST 要求:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}
將資源檔案的內容做為 application/octet-stream 或 multipart/form-data 傳遞
詳情請參閱「為機構匯入資源檔案」。
使用 API 刪除資源
如要刪除資源,請將範圍限定為 API Proxy 修訂版本、環境或機構 (僅限 Edge),詳情請參閱下列各節。
使用 API 刪除 API Proxy 修訂版本範圍內的資源
如要使用 API 刪除 API Proxy 修訂版本範圍內的資源,請對下列資源發出 DELETE 要求:
https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}
下列範例會從 helloworld API Proxy 的修訂版本 1 刪除 pathSetter.js JavaScript 資源檔案:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \ -u email:password
以下是回應範例。
{
"name" : "pathSetter.js",
"type" : "jsc"
}或者,您也可以使用 Update API Proxy 修訂版本 API,如下所示:
- 使用 Export API proxy API 下載 API Proxy 設定套件,並搭配下列選項:
- 將
format查詢參數設為bundle - 將
Accept標頭設為application/zip
- 將
- 從 API Proxy 設定套件中刪除資源檔案。
- 使用 Update API proxy revision API 上傳套件
使用 API 刪除環境範圍內的資源
使用 API 刪除環境範圍內的資源,詳情請參閱下列各節。
如要使用 API 刪除環境範圍內的資源,請對下列資源發出 DELETE 要求:
https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}
以下範例會從 test 環境刪除 pathSetter.js JavaScript 資源檔案:
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \ -u email:password
以下是回應範例。
{
"name" : "pathSetter.js",
"type" : "jsc"
}使用 API 刪除機構範圍內的資源 (僅限 Edge)
如要使用 API 刪除機構範圍內的資源,請對下列資源發出 DELETE 要求:
https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}
詳情請參閱「從機構刪除資源檔案」。
存取資源
本節的範例說明如何建立及管理名為 pathSetter.js 的 JavaScript 資源,以便 JavaScript 類型的政策參照該資源。
如要將 JavaScript 附加至 Request 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 政策」。