您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
如下各節所述,瞭解及管理資源。
關於資源
許多政策類型仰賴資源。資源是附加至 API Proxy 時實作程式碼或設定的檔案。在某些情況下,如同 JavaScript 和 Java 呼叫,政策只會在 API Proxy 中定義要執行部分程式碼的附件點。JavaScript 或 Java 呼叫政策是資源的指標。
下列 JavaScript 範例會將 HTTP 要求路徑設為 proxy.basepath
變數的值。
request.headers["RequestPath"] = context.getVariable("proxy.basepath");
資源類型
下表概述資源類型:
資源類型 | 說明 |
---|---|
JAR (java) |
Java callout 政策參照的 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 修訂版本。例如,您可以加入 JavaScript 資源,其修訂版本為 API Proxy 的 1,然後變更實作,在 Proxy 的修訂版本 2 中使用 Python 指令碼。修訂版本 1 只能存取 JavaScript 資源,而修訂版本 2 只能存取 Python 資源。
- 環境:如果儲存在環境中 (例如
test
或prod
),則部署於相同環境中的任何 API Proxy 都能使用資源。 - 機構:如果將資源儲存在機構中,則任何環境中部署的 API Proxy 都能使用資源。
存放區可在下列 URI 中找到,如 Resource files API 及後續的使用 API 管理資源中所述:
- 機構:
/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
資源名稱解析
邊緣會從最具體到最廣泛的範圍解析資源名稱。資源名稱從 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
選項),將已編譯的 Java 資源新增為 JAR 檔案。例如:
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和更新) 將資源儲存在 API Proxy 修訂版本範圍。
透過 UI 管理資源
透過 UI 管理範圍限定為 API Proxy 修訂版本的資源,如以下各節所述。
透過 UI 查看資源
如要查看限定於 API Proxy 修訂版本的資源:
-
登入 apigee.com/edge。
- 在左側導覽列中,依序選取「Develop」(開發) >「API Proxy」。
- 在清單中選取要建立資源的 API Proxy。
API Proxy 編輯器會隨即開啟,並顯示「總覽」分頁。 - 按一下「開發」分頁標籤。
- 如有需要,請在「修訂版本」下拉式選單中選取修訂版本。
限定為 API Proxy 修訂版本的資源會列在導覽器檢視畫面中的「資源」部分。
使用 UI 建立資源
如要透過 UI 建立範圍限定為 API Proxy 修訂版本的資源:
- 查看範圍限定為 API Proxy 修訂版本的資源。
- 在「導覽器」檢視畫面中的「資源」部分按一下「+」+,開啟「New Resource」對話方塊。
- 輸入下列內容:
欄位 說明 來源 選取即可建立新檔案或匯入檔案。 檔案類型 從下拉式清單中選取資源類型。 檔案名稱 檔案名稱。所選檔案類型的副檔名必須有效。
透過 UI 更新資源
如要透過 UI 更新範圍限定為 API Proxy 修訂版本的資源:
- 查看範圍限定為 API Proxy 修訂版本的資源。
- 在「資源」下方的「導覽器」檢視畫面中,按一下您要更新的資源。
注意:針對 JAR 檔案,請將遊標移到要編輯的資源上,然後按一下 。 - 視需要更新資源。
注意:上傳新的 JAR 檔案後,請按一下「Update」。
使用 UI 刪除資源
如要透過 UI 卸離範圍限定為 API Proxy 修訂版本的資源:
- 查看範圍限定為 API Proxy 修訂版本的資源。
- 在「資源」下的「導覽器」檢視中,將遊標停在要刪除的資源上,以顯示動作選單。
- 按一下「」。
- 按一下「刪除」來確認動作。
使用 API 管理資源
請按照下列各節所述,使用 API 管理資源。
使用 API 建立資源
按照以下各節所述,建立範圍限定為 API Proxy 修訂版本、環境或機構 (僅限邊緣) 的資源。
使用 API 建立範圍限定為 API Proxy 修訂版本的資源
透過向下列資源發出 POST
要求,使用 API 建立範圍限定為 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
以下範例說明如何從本機電腦上傳資源為檔案。請務必使用 -F
進行 curl 二進位檔上傳作業,以便 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
以下範例說明如何從本機電腦上傳資源為檔案。請務必使用 -F
進行 curl 二進位檔上傳作業,以便 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 修訂版本、環境或機構 (僅限邊緣) 的資源。
使用 API 更新範圍限定為 API Proxy 修訂版本的資源
透過向下列資源發出 PUT
要求,使用 API 更新限定於 API Proxy 修訂版本的資源: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,更新名為 pathSetter
的 JavaScript 資源:
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
以下範例說明如何從本機電腦將資源更新為檔案。請務必使用 -F
進行 curl 二進位檔上傳作業,以便 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 修訂版本 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
以下範例顯示如何使用本機電腦中的檔案更新資源檔案。請務必使用 -F
進行 curl 二進位檔上傳作業,以便 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 修訂版本 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 政策」。